마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안녕하세요 viewpager의 전체데이터를 받으려면어떻게해야하나요?

0 추천
viewpager의 비트맵값들을 변경한뒤 전체데이터를 받아 이미지들을 서버에 전송시키려하는데요

/*
 Copyright (c) 2012 Roman Truba

 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 documentation files (the "Software"), to deal in the Software without restriction, including without limitation
 the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 permit persons to whom the Software is furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in all copies or substantial
 portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
 THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package com.truba.touchgallery.GalleryWidget;

import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;

import java.util.List;

/**
 * Class wraps URLs to adapter, then it instantiates <b>UrlTouchImageView</b>
 * objects to paging up through them.
 */
public class BasePagerAdapter extends PagerAdapter {

 public static List<String> mResources;
 static Context mContext;
 protected int mCurrentPosition = -1;
 protected OnItemChangeListener mOnItemChangeListener;
 public static ViewGroup viewgroup;
 
 

 public BasePagerAdapter() {
  mResources = null;
  mContext = null;
 }

 public BasePagerAdapter(Context context, List<String> resources) {
  this.mResources = resources;
  this.mContext = context;
 }

 @Override
 public void setPrimaryItem(ViewGroup container, final int position,
   Object object) {
  
  viewgroup =container;
  super.setPrimaryItem(container, position, object);
  if (mCurrentPosition == position)
   return;
  GalleryViewPager galleryContainer = ((GalleryViewPager) container);
  if (galleryContainer.mCurrentView != null) {
   galleryContainer.mCurrentView.resetScale();
  }
  mCurrentPosition = position;
  if (mOnItemChangeListener != null)
   mOnItemChangeListener.onItemChange(mCurrentPosition);
  Log.i("11-03","position 값은 무엇이더냐?"+position);
  
  Log.i("11-30","object란?"+object);
 }

 @Override
 public void destroyItem(ViewGroup collection, int position, Object view) {
  collection.removeView((View) view);
 }

 
 
 @Override
 public int getCount() {
  return mResources.size();
 }

 @Override
 public boolean isViewFromObject(View view, Object object) {
  return view.equals(object);
 }

 @Override
 public void finishUpdate(ViewGroup arg0) {
 }

 @Override
 
 public void restoreState(Parcelable arg0, ClassLoader arg1) {
 }

 @Override
 public Parcelable saveState() {
  return null;
 }

 
 @Override
 public void startUpdate(ViewGroup arg0) {
 }

 public int getCurrentPosition() {
  return mCurrentPosition;
 }

 public void setOnItemChangeListener(OnItemChangeListener listener) {
  mOnItemChangeListener = listener;
 }

 public static interface OnItemChangeListener {
  public void onItemChange(int currentPosition);
 }
 
 
 //김홍식 마지막에 사진값들을 받기위해 만들었음.
 public List<String> getlastdata() {
  return mResources;
 }

};

resources에는 당연히 기존의 url값들만을 받기떄문에 getlastdata를 만들어 사용햇지만 변경전의 원본파일이 서버에올라갑니다.  변경후의 값들을 받고싶습니다.
익명사용자 님이 2015년 11월 30일 질문

1개의 답변

0 추천
 
채택된 답변

제가 잘못 이해하고있는지 모르겠는데요...

비트맵값을 변경을 했으면 변경한내용을 저장할 테고 그 저장한걸 viewPager니까 array형태로 그 값을 가지고 있을텐데요...

그게 만약 mResources라는 list라면 저 값이 변경되는 부분이 올려주신 소스에는 없네요.. (저 값을 서버로 올린다면 서버에는 기존값 그대로 올라가고있겠죠...)

array를 하나 새로 만들어서 거기다가 변경 내용을 관리하시든 하셔야 할듯요.. (mResources를 변경 하시든...)

귀찮근 (2,960 포인트) 님이 2015년 11월 30일 답변
음..변경 내용을 관리하려면 어떻게해야할지를 몰라 막막합니다.
case R.id.gall_crops:

            GalleryViewPager galleryContainercrop = ((GalleryViewPager) mViewPager);
            BitmapDrawable k = (BitmapDrawable) galleryContainercrop.mCurrentView
                    .getDrawable();
           
            Log.i("11-30","캐쉬값 : " + galleryContainercrop.getDrawingCache());
           
            j = k.getBitmap();

           
       
            mViewPager.setDrawingCacheEnabled(true);
            j = mViewPager.getDrawingCache();

            Intent i = new Intent(GalleryFileActivity.this, ImageCroper.class);
            // i.putExtra("bitmap", j);

            startActivity(i);
           
            Log.i("11-30", "lastdata"+ pagerAdapter.getlastdata());
            pagerAdapter.isViewFromObject(mViewPager,j);
           

            break;



imagecropped.java
                GalleryViewPager galleryContainer = ((GalleryViewPager) GalleryFileActivity.mViewPager);
                galleryContainer.mCurrentView.setImageBitmap(croppedImage);
finish();
이런식으로 하면 imagecrop된 사진이 viewpager에 적용되는데
이제 이 변경된값을 어떻게 불러오고 서버에 전송할때  변경된값포함된 전체리스트값 을받게되나요?..
좋은 방법은 아닐지 모르겠지만요..
저 변경된 이미지 파일을 임시파일로 저장하시든 하여 그 위치(파일)를 array형태로 관리하시고 그 array를 서버에 올리는걸로 사용하시면 되지 않을까요?

EDIT : 이미지를 크롭하게 되면 파일 남을테고 startActivityForResult로 하면 파일로 저장가능하게 데이터가 올겁니다.. 그 파일을 mResource라는 array와 싱크 맞춰서 저장해두면 가능할지 않을까 싶습니다.. (현재는 생각나는게 이거 뿐이네요.. 좋은 방법있으면 공유좀..)
...