捏缩放自定义视图

我已经创build了我的自定义视图,我想对我的自定义视图应用缩放。 怎么做?

Android Developers Blog上的这篇文章非常好地介绍了这个主题(向下滚动到GestureDetectors部分):

使多点触摸感觉

如果你只是想实现捏缩放,只需要几行代码:

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一样。

将您的视图放在ZoomView

自定义视图可在这里https://github.com/Polidea/android-zoom-查看它很容易,自由,这么多的乐趣!;

用这个 :

通过各种触摸手势实现支持缩放的Android版ImageView。

https://github.com/chrisbanes/PhotoView