0
Я терплю неудачу, пытаясь реализовать ScaleGestureDetector
в целом View
.ScaleGestureDetector для всего изображения
У меня есть ImageView
, который заполняет весь экран. Кроме того, у меня разные маленькие изображения. Теперь я хочу реализовать ScaleGestureDetector
, чтобы увеличить весь вид, а не только один ImageView
.
Мой код:
public class TouchMoveImage extends Activity implements View.OnTouchListener, ScaleGestureDetector.OnScaleGestureListener {
private ImageView skizze;
private ImageView feuerloescher;
private float scale = 1.f;
ScaleGestureDetector scaleGestureDetector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.touchmoveimage);
skizze = (ImageView) findViewById(R.id.skizze);
feuerloescher = (ImageView) findViewById(R.id.feuerloescherID);
scaleGestureDetector = new ScaleGestureDetector(this, new MyOnScaleGestureListener());
public boolean onTouchEvent(MotionEvent event) {
scaleGestureDetector.onTouchEvent(event);
return true;
}
@Override
public boolean onScale(ScaleGestureDetector scaleGestureDetector) {
float scaleFactor = scaleGestureDetector.getScaleFactor();
scaleFactor *= scaleGestureDetector.getScaleFactor();
//Lass sie nicht zu klein oder zu groß werden
scaleFactor = Math.max(0.1f, Math.min(scaleFactor, 5.0f));
return true;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector scaleGestureDetector) {
return false;
}
@Override
public void onScaleEnd(ScaleGestureDetector scaleGestureDetector) {
}
public class MyOnScaleGestureListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector scaleGestureDetector) {
scale *= scaleGestureDetector.getScaleFactor();
//Lass sie nicht zu klein oder zu groß werden
scale = Math.max(0.1f, Math.min(scale, 5.0f));
return true;
}
}
Но это не работает. Что я делаю неправильно?