【问题标题】:Zoom and swipe issue with ViewPager in androidandroid中ViewPager的缩放和滑动问题
【发布时间】:2015-06-16 19:09:35
【问题描述】:

我是android development 的新手。我正在尝试制作一个需要集成图像swipe and pinch zoom 功能的壁纸应用程序。

我都做过,但不是一次。当我集成滑动它的工作时,但是当我集成捏缩放时,它就不起作用了。 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);
    }
}
}

我使用了上面的代码。让我知道是否有人有解决方案的实际问题。

谢谢

【问题讨论】:

    标签: android android-viewpager swipe pinchzoom


    【解决方案1】:

    对于滑动,您可以测量最小滑动距离,并在此基础上识别缩放和滑动。您也可以查看给定的网址以供参考以实现您的目标

    http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      也许你可以在你必须捏的时候尽量避免滑动

      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,希望对您有所帮助

      【讨论】:

      • 目前我不能,但是您必须为您的 viewpager 创建一个自定义类,然后使用新的 viewpager 更改您的 xml,然后在使用捏缩放时调用方法 setPagingEnabled 并设置为 false ,希望对你有帮助
      猜你喜欢
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2012-07-25
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多