gpt4 book ai didi

android - 捏缩放自定义 View

转载 作者:IT王子 更新时间:2023-10-28 23:54:25 24 4
gpt4 key购买 nike

我已经创建了我的自定义 View ,我想为我的自定义 View 应用捏缩放。该怎么做?

最佳答案

Android 开发者博客上的这篇文章很好地涵盖了这个主题(向下滚动到 GestureDetectors 部分):

Making Sense of Multitouch

如果您只想实现捏合缩放,只需几行代码:

private ScaleGestureDetector mScaleDetector;
private float mScaleFactor = 1.f;

public MyCustomView(Context mContext){
//...
//Your view code
//...
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
// Let the ScaleGestureDetector inspect all events.
mScaleDetector.onTouchEvent(ev);
return true;
}

@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);

canvas.save();
canvas.scale(mScaleFactor, mScaleFactor);
//...
//Your onDraw() code
//...
canvas.restore();
}

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
mScaleFactor *= detector.getScaleFactor();

// Don't let the object get too small or too large.
mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f));

invalidate();
return true;
}
}

本文的其余部分涉及处理其他手势,但您可以使用 GestureDetector 而不是使用它们的实现就像上面代码中使用的ScaleGestureDetector一样。

关于android - 捏缩放自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com