android中ViewPager的缩放和滑动问题

android中ViewPager的缩放和滑动问题,android,android-viewpager,swipe,pinchzoom,Android,Android Viewpager,Swipe,Pinchzoom,我是新来的android开发人员。我正在尝试制作一个墙纸应用程序,其中需要集成图像滑动和收缩缩放功能 我两个都做了,但不是一次做。当我集成滑动时,它工作,但当我集成收缩缩放时,它不工作这两种功能单独工作,但不能同时工作。 我多次试图找到解决办法,但都没有成功下面使用的代码。 public class FullImageActivity extends Activity { protected int curruntPosition; @Override protecte

我是新来的
android开发人员
。我正在尝试制作一个墙纸应用程序,其中需要集成图像
滑动和收缩缩放功能

我两个都做了,但不是一次做。当我集成滑动时,它工作,但当我集成收缩缩放时,它不工作<代码>这两种功能单独工作,但不能同时工作。

我多次试图找到解决办法,但都没有成功<代码>下面使用的代码。

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);
    }
}
}
公共类FullImageActivity扩展活动{
受保护的内部位置;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u full\u image);
ImageAdapter ImageAdapter=新的ImageAdapter(此);
列表图像=新的ArrayList();
ViewPager ViewPager=(ViewPager)findViewById(R.id.view\u pager);
对于(int i=0;i
我使用了上面的代码。让我知道,如果有任何人有一个解决方案,它实际上是什么问题


谢谢

也许你可以试着避免在需要捏东西的时候刷卡

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标记替换我自己的类,然后调用方法SetPaginEnabled false,希望它对刷卡有帮助。

您可以测量最小刷卡距离,并在此基础上识别缩放和刷卡。此外,您还可以查看给定的url以供参考,从而实现您的目标


希望这对您有所帮助。

目前我不能,但是您必须为您的viewpager创建一个自定义类,然后使用新的viewpager更改xml,然后在使用pinch zoom时调用方法setPaginEnabled并设置为false,希望它能帮到您