开发中使用到ScaleGestureDetectorde这个类,这里对他的使用方法做简单的说明,方便日后使用。
1.为自定义View创建一个ScaleGestureDetector 实例:
先定义一个变量:
private ScaleGestureDetector mScaleGestureDetector = null;
然后在构造函数中初始化该实例:
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
super.setScaleType(ScaleType.MATRIX);
mScaleGestureDetector = new ScaleGestureDetector(context, this);
this.setOnTouchListener(this);
}
注意:这里this需要传入OnScaleGestureListener实例。
2.确保onTouchEvent(MotionEvent)方法被调用:
当event事件发生时,定义在callback中的方法会被执行。
@Override
public boolean onTouch(View v, MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return true;
}
3.自定义view实现ScaleGestureDetector.OnScaleGestureListener接口,并实现接口中的方法。
@Override
public boolean onScale(ScaleGestureDetector detector) {
return true;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
稍后会继续补充