Reputation: 798
I fail while I try to implement the ScaleGestureDetector
to the whole View
.
I have a ImageView
which fills the whole Screen. On top of that I have different small Images. Now i want to implement the ScaleGestureDetector
to zoom the whole view not just one ImageView
.
My Code:
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;
}
}
But this isn't working. What I'm doing wrong?
Upvotes: 1
Views: 641
Reputation: 69
Your activity already implements OnScaleGestureListener
So you may create a detector like this:
scaleGestureDetector = new ScaleGestureDetector( this, this );
Upvotes: 1