仅用一根手指而不是两只手指来调整ImageView的大小

杰森

我试图用一个手指移动(上下)来更改ImageView的高度。下面的代码用两根手指改变高度(例如捏或反向)。如何修改此代码以执行我想要的操作?谢谢。

public class MainActivity extends Activity {


    private  ImageView iv;
    private  Matrix matrix = new Matrix();
    private float scale = 1f;
    private ScaleGestureDetector SGD;



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

        iv = iv=(ImageView)findViewById(R.id.imageView);
        SGD = new ScaleGestureDetector(this, new ScaleListener());

    }

    public boolean onTouchEvent(MotionEvent ev) {
        SGD.onTouchEvent(ev);
        return true;
    }

    private class  ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener
    {
        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            scale *= detector.getScaleFactor();
            scale = Math.max(0.1f, Math.min(scale, 5.0f));

            matrix.setScale(1, scale);
            iv.setImageMatrix(matrix);
            return true;
        }
    }
}
冰激凌

使用GestureDetector进行滚动:

@Bind(R.id.container)
ViewGroup container;

@Bind(R.id.image)
ImageView image;
private GestureDetectorCompat detector;
private float yscale = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    ButterKnife.bind(this);
    image.setScaleType(ImageView.ScaleType.MATRIX);

    detector = new GestureDetectorCompat(this, new GestureDetector.SimpleOnGestureListener() {

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            Matrix m = new Matrix();
            yscale += distanceY / container.getHeight();
            m.setScale(1, yscale, 0, 0);
            image.setImageMatrix(m);
            return true;
        }
    });
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return detector.onTouchEvent(event);
} detector.onTouchEvent(event);
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XServer触摸屏,一根手指而不是两根手指滚动

来自分类Dev

为UITableView强制两根手指滚动,但禁用一根手指滚动

来自分类Dev

强制两根手指滚动进行UITableView,但禁用一根手指滚动

来自分类Dev

让最后一根手指触摸屏幕

来自分类Dev

用一根手指旋转椭圆(WPF)

来自分类Dev

如何在ubuntu 19.10中将两只手指的触摸板配置为中键?使用libinput

来自分类Dev

IE11触摸设备上的一根手指滚动与两根手指滚动之间的区别

来自分类Dev

如何在WinRT中用一根手指触摸获得总旋转角度?

来自分类Dev

如何只用一根手指就能在Google Maps API(android)上旋转?

来自分类Dev

如何防止uwp中的一根手指滚动进行listview控件?

来自分类Dev

ionic:仅用两个手指滚动内容

来自分类Dev

仅用两根手指滑动DrawerLayout即可打开菜单抽屉

来自分类Dev

使用手指IOS调整UIImageView的大小

来自分类Dev

在iPad上禁用两根手指滚动

来自分类Dev

触摸板-两根手指滚动

来自分类Dev

仅消耗两根手指

来自分类Dev

两根手指滚动导致图标卡住

来自分类Dev

捏缩放并用两根手指旋转Android中的ImageView

来自分类Dev

如何在进行ACTION_MOVE时用另一根手指检测TOUCH事件

来自分类Dev

iOS 13 blob pdf 文件的滚动问题(不能用一根手指滚动)

来自分类Dev

Libgdx - 关于 2 人游戏。我希望每个玩家都可以用一根手指触摸自己的区域

来自分类Dev

Android ImageView和OnTouchListener手指移动

来自分类Dev

用两根手指进行Android缩放-onTouch和setScaleX,setScaleY

来自分类Dev

两根手指滚动导致右键单击(ubuntu 15.04)

来自分类Dev

UICollectionview:didSelectItemAtIndexPath不适用于单击。用两根手指滑动即可

来自分类Dev

用两根手指捏放大collectionView Xcode

来自分类Dev

如何通过移动手指来改变活动?

来自分类Dev

如何通过移动手指来改变活动?

来自分类Dev

手指触摸/拖动时更改UIButton的大小

Related 相关文章

  1. 1

    XServer触摸屏,一根手指而不是两根手指滚动

  2. 2

    为UITableView强制两根手指滚动,但禁用一根手指滚动

  3. 3

    强制两根手指滚动进行UITableView,但禁用一根手指滚动

  4. 4

    让最后一根手指触摸屏幕

  5. 5

    用一根手指旋转椭圆(WPF)

  6. 6

    如何在ubuntu 19.10中将两只手指的触摸板配置为中键?使用libinput

  7. 7

    IE11触摸设备上的一根手指滚动与两根手指滚动之间的区别

  8. 8

    如何在WinRT中用一根手指触摸获得总旋转角度?

  9. 9

    如何只用一根手指就能在Google Maps API(android)上旋转?

  10. 10

    如何防止uwp中的一根手指滚动进行listview控件?

  11. 11

    ionic:仅用两个手指滚动内容

  12. 12

    仅用两根手指滑动DrawerLayout即可打开菜单抽屉

  13. 13

    使用手指IOS调整UIImageView的大小

  14. 14

    在iPad上禁用两根手指滚动

  15. 15

    触摸板-两根手指滚动

  16. 16

    仅消耗两根手指

  17. 17

    两根手指滚动导致图标卡住

  18. 18

    捏缩放并用两根手指旋转Android中的ImageView

  19. 19

    如何在进行ACTION_MOVE时用另一根手指检测TOUCH事件

  20. 20

    iOS 13 blob pdf 文件的滚动问题(不能用一根手指滚动)

  21. 21

    Libgdx - 关于 2 人游戏。我希望每个玩家都可以用一根手指触摸自己的区域

  22. 22

    Android ImageView和OnTouchListener手指移动

  23. 23

    用两根手指进行Android缩放-onTouch和setScaleX,setScaleY

  24. 24

    两根手指滚动导致右键单击(ubuntu 15.04)

  25. 25

    UICollectionview:didSelectItemAtIndexPath不适用于单击。用两根手指滑动即可

  26. 26

    用两根手指捏放大collectionView Xcode

  27. 27

    如何通过移动手指来改变活动?

  28. 28

    如何通过移动手指来改变活动?

  29. 29

    手指触摸/拖动时更改UIButton的大小

热门标签

归档