如果ImageViewTouch处于缩放模式,则禁用PagerAdapter中的滑动

亨利克

我已经使用ImageViewTouch实现了一个画廊:https : //github.com/sephiroth74/ImageViewZoom这样可以使用DoupleTap和其他不错的东西进行缩放,效果很好。

这些图像被添加到PagerAdapter中,以使图像之间也可以滑动。

但是,当前在放大图像时在x轴上滚动时遇到问题。如果用户放大了图像,我想禁用PageAdapters触摸侦听器。

但是,如果没有缩放,或者图像放大并且在图像的远端,我想再次将其打开。

扩展FragmentActivity的GalleryActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gallery_layout);
    
    GalleryAdapter galleryAdapter = new GalleryAdapter(GalleryActivity.this, images);

    // create view pager using the fragment adapter
    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
    viewPager.setAdapter(galleryAdapter);
    viewPager.setOnPageChangeListener(new PageChangeListener());
}

我的适配器

public class GalleryAdapter extends PagerAdapter {

Matrix imageMatrix;
private Activity activity;
private ArrayList<Bitmap> images;
private LayoutInflater inflater;

// constructor
public GalleryAdapter(Activity activity, ArrayList<Bitmap> images) {
    this.activity = activity;
    this.images = images;
}

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

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

@Override
public Object instantiateItem(ViewGroup container, int position) {
    final ImageViewTouch imgDisplay;
    final Bitmap image;

    inflater = (LayoutInflater) activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    final View viewLayout = inflater.inflate(R.layout.gallery_image,
            container, false);

    imgDisplay = (ImageViewTouch) viewLayout.findViewById(R.id.image);
    imgDisplay.setDisplayType(DisplayType.FIT_IF_BIGGER);
    imgDisplay.setVisibility(View.GONE);
    image = images.get(position);

    imgDisplay.setDoubleTapEnabled(true);

    if (null == GalleryAdapter.this.imageMatrix) {
        GalleryAdapter.this.imageMatrix = new Matrix();
    } else {
        // get the current image matrix, if we want restore the
        // previous matrix once the bitmap is changed
        imageMatrix = imgDisplay.getDisplayMatrix();
    }

    imgDisplay.setImageBitmap(image, GalleryAdapter.this.imageMatrix
            .isIdentity() ? null : GalleryAdapter.this.imageMatrix,
            ImageViewTouchBase.ZOOM_INVALID,
            ImageViewTouchBase.ZOOM_INVALID);
    imgDisplay.setVisibility(View.VISIBLE);

    viewLayout.setTag(imgDisplay);

    ((ViewPager) container).addView(viewLayout);

    return viewLayout;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    ((ViewPager) container).removeView((RelativeLayout) object);
}

这是有人实现的吗?

货物8

您应该使用自己的ImageView子类扩展ImageViewZoom。然后尝试这样的事情:

this.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (getScale() > 1f) {
getParent().requestDisallowInterceptTouchEvent(true);
} else {
getParent().requestDisallowInterceptTouchEvent(false);
}
return false;
}
});

基本上,无论何时将图像缩放/缩放到1倍以上,都应禁止分页。因此,用户必须缩小以进行翻页。

看到这里https://github.com/sephiroth74/ImageViewZoom/issues/38

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ImageViewTouch小部件中设置缩放限制

来自分类Dev

在UIPageViewController中禁用滑动

来自分类Dev

缩放后,图像处于横向模式而不是纵向模式

来自分类Dev

如果处于调试模式,则后台线程并非总是在Android onCreate()中起作用

来自分类Dev

在Vuepress中禁用中等缩放

来自分类Dev

如何禁用Thunderbird中的缩放?

来自分类Dev

PagerAdapter 在滑动时更改 TextView

来自分类Dev

当相机在移动应用程序中处于“开启”状态时,禁用手机的睡眠模式

来自分类Dev

如果功能处于活动状态,如何禁用点击

来自分类Dev

在Metro IE中禁用导航滑动

来自分类Dev

在 Android Oreo 中禁用滑动删除通知

来自分类Dev

使用 PagerAdapter 和 ViewPager 中的选项卡之间的滑动问题

来自分类Dev

找出我在Braintree中处于哪种模式

来自分类Dev

Android中的Zxing始终处于横向模式

来自分类Dev

OSX-通过缩放按钮禁用全屏模式?

来自分类Dev

Byobu:在缩放模式下禁用Shift +方向键

来自分类Dev

如果条件在Pascal中处于for循环中

来自分类Dev

SQL-如果处于条件中,则转到

来自分类Dev

如果我在密码字段中添加 # 作为模式,如何禁用提交按钮

来自分类Dev

在MPAndroidChart库中禁用捏缩放

来自分类Dev

在自举框架中禁用触摸设备的缩放

来自分类Dev

是否可以禁用lightningChartJS图表中的缩放?

来自分类Dev

如何在Chrome中禁用页面缩放

来自分类Dev

如何禁用R中绘图图的缩放?

来自分类Dev

在App Inventor中禁用WebView缩放

来自分类Dev

禁用浏览器JS中的缩放

来自分类Dev

meta name =“ viewport”-一起禁用旋转,缩放和滑动

来自分类Dev

如何在无线 USB 键盘的触摸板上禁用捏合、缩放和滑动?

来自分类Dev

如果模式结束时如何禁用匹配if模式

Related 相关文章

  1. 1

    在ImageViewTouch小部件中设置缩放限制

  2. 2

    在UIPageViewController中禁用滑动

  3. 3

    缩放后,图像处于横向模式而不是纵向模式

  4. 4

    如果处于调试模式,则后台线程并非总是在Android onCreate()中起作用

  5. 5

    在Vuepress中禁用中等缩放

  6. 6

    如何禁用Thunderbird中的缩放?

  7. 7

    PagerAdapter 在滑动时更改 TextView

  8. 8

    当相机在移动应用程序中处于“开启”状态时,禁用手机的睡眠模式

  9. 9

    如果功能处于活动状态,如何禁用点击

  10. 10

    在Metro IE中禁用导航滑动

  11. 11

    在 Android Oreo 中禁用滑动删除通知

  12. 12

    使用 PagerAdapter 和 ViewPager 中的选项卡之间的滑动问题

  13. 13

    找出我在Braintree中处于哪种模式

  14. 14

    Android中的Zxing始终处于横向模式

  15. 15

    OSX-通过缩放按钮禁用全屏模式?

  16. 16

    Byobu:在缩放模式下禁用Shift +方向键

  17. 17

    如果条件在Pascal中处于for循环中

  18. 18

    SQL-如果处于条件中,则转到

  19. 19

    如果我在密码字段中添加 # 作为模式,如何禁用提交按钮

  20. 20

    在MPAndroidChart库中禁用捏缩放

  21. 21

    在自举框架中禁用触摸设备的缩放

  22. 22

    是否可以禁用lightningChartJS图表中的缩放?

  23. 23

    如何在Chrome中禁用页面缩放

  24. 24

    如何禁用R中绘图图的缩放?

  25. 25

    在App Inventor中禁用WebView缩放

  26. 26

    禁用浏览器JS中的缩放

  27. 27

    meta name =“ viewport”-一起禁用旋转,缩放和滑动

  28. 28

    如何在无线 USB 键盘的触摸板上禁用捏合、缩放和滑动?

  29. 29

    如果模式结束时如何禁用匹配if模式

热门标签

归档