Для Android 2.2+ (api level8) вы можете использовать ScaleGestureDetector.
вам нужен член:
private ScaleGestureDetector mScaleDetector;
в конструкторе (или onCreate ()), который вы добавляете:
mScaleDetector = new ScaleGestureDetector(context, new OnScaleGestureListener() {
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
Log.d(LOG_KEY, "zoom ongoing, scale: " + detector.getScaleFactor());
return false;
}
});
Вы переопределяете onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent event) {
mScaleDetector.onTouchEvent(event);
return true;
}
Если вы рисуете свой View вручную, в onScale () вы, вероятно, сохраняете масштабный коэффициент в члене, затем вызываете invalidate ()и используйте масштабный коэффициент при рисовании в onDraw ().В противном случае вы можете напрямую изменять размеры шрифта или тому подобное в onScale ().