Увеличение/уменьшение объекта с помощью жестов двух пальцев
Как изменять масштаб объекта с помощью жестов пальцами(не помню как это правильно называется. Cropping, или что - то такое, но не суть)
Ответы (1 шт):
Для изменения размера например imageView можно сделать так. Имеется imageView:
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
Дальше создаем глобальные переменные в MainActivity классе:
private ScaleGestureDetector mScaleGestureDetector;
private float mScaleFactor = 1.0f;
private ImageView mImageView;
Следующим этапом мы будем использовать слушатель onTouchEvent():
public boolean onTouchEvent(MotionEvent motionEvent) {
mScaleGestureDetector.onTouchEvent(motionEvent);
return true;
}
Для корректной работы необходимо создать класс ScaleListener который будет реализовывать наши действия. Добавлять его следует в классе MainActivity:
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector scaleGestureDetector){
mScaleFactor *= scaleGestureDetector.getScaleFactor();
mScaleFactor = Math.max(0.1f,
Math.min(mScaleFactor, 10.0f));
mImageView.setScaleX(mScaleFactor);
mImageView.setScaleY(mScaleFactor);
return true;
}
}
и вот само использование данного класса на примере imageView:
mImageView=(ImageView)findViewById(R.id.imageView);
mScaleGestureDetector = new ScaleGestureDetector(this, new ScaleListener());
Вот первоисточник который довольно хорошо реализован. Так же есть вопрос в котором уже поднималась данная тема. В ответе на данный вопрос предложили использовать библиотеку.