2015-06-16 70 views
0

我是android development中的新功能。我正在嘗試製作壁紙應用程序,以便在其中集成圖像swipe and pinch zoom功能。在android中使用ViewPager進行縮放和刷卡問題

我已經做了兩次,但沒有在一次。當我整合滑動它的工作,但當我整合捏縮放然後不工作。 Both functionality work alone but not together.

我試圖找到解決方案很多次,但沒有從任何地方得到。 Below code used.

public class FullImageActivity extends Activity { 
    protected int curruntPosition; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_full_image); 

     ImageAdapter imageAdapter = new ImageAdapter(this); 
     List<ImageView> images = new ArrayList<ImageView>(); 
     ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 

     for (int i = 0; i < imageAdapter.getCount(); i++) { 
      ImageView imageView = new ImageView(this); 
      imageView.setImageResource(imageAdapter.mThumbIds[i]); 
      imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
      images.add(imageView); 


     } 
     ImagePagerAdapter imagePagerAdapter = new ImagePagerAdapter(images); 
     viewPager.setAdapter(imagePagerAdapter); 
     int position = getIntent().getExtras().getInt("id"); 
     viewPager.setCurrentItem(position); 

     viewPager.setOnPageChangeListener(new OnPageChangeListener() { 

       @Override public void onPageSelected(int arg0) 
       { // TODOAuto-generated method stub // Here you can set the wallpaper 
       curruntPosition = arg0; 

       } 

       @Override public void onPageScrolled(int arg0, float arg1, int arg2) 
       { // TODO Auto-generated method stub 

       } 

       @Override public void onPageScrollStateChanged(int arg0) 
       { // TODO Auto-generated method stub 

       } 

       }); 


      TouchImageView img = new TouchImageView(this); 
       img.setImageResource(imageAdapter.mThumbIds[position]); 
       img.setMaxZoom(4f); 
       setContentView(img); 
    } 
} 
} 

我上面的代碼中使用。讓我知道是否有人有解決問題的實際問題。

感謝

回答

0

也許你可以儘量避免刷卡時,你必須掐

public class CustomViewPager extends ViewPager { 
private boolean enabled; 
public CustomViewPager(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    this.enabled = true; 
} 
@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (this.enabled) { 
     return super.onTouchEvent(event); 
    } 
    return false; 
} 
@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    if (this.enabled) { 
     return super.onInterceptTouchEvent(event); 
    } 
    return false; 
} 
public void setPagingEnabled(boolean enabled) { 
    this.enabled = enabled; 
} 
} 

這樣做了以後,留下的唯一的事情就是替代的佈局文件ViewPager標籤爲我自己的類然後調用方法setPagingEnabled false,希望它有幫助

+0

你可以更新我的代碼,所以我可以很容易地理解... – harsh4u

+0

此刻我不能,但是你必須爲你的viewpager創建一個自定義的類,然後用你的新viewpager改變你的xml,然後當使用pinch縮放調用方法setPagingEnabled並設置爲false,希望它有幫助 –