我正在双击某个特定点缩放图像视图。在双击事件中它完美地放大但我想实现缩小的功能,当用户双击时图像被缩放但是当他再次双击时,缩放的图像必须回到原始尺寸 怎么做到这一点?任何帮助将不胜感激 这是我的代码
ImageView iv;
private Matrix matrix = new Matrix();
Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.demoimg), size.x, size.y, true);
iv.setImageBitmap(bmp);
original_matrix = iv.getImageMatrix();
iv.setOnTouchListener(new View.OnTouchListener() {
private GestureDetector gestureDetector = new GestureDetector(SecondActivity.this, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
float scalefactor = Math.max(1.1f, Math.min(3.0f, 4.0f));
float x = e.getX();
float y = e.getY();
matrix.setScale(scalefactor, scalefactor, x, y);
iv.setImageMatrix(matrix);
return super.onDoubleTap(e);
}
});
@Override
public boolean onTouch(View v, MotionEvent event) {
/* Toast.makeText(getApplicationContext(), "On Touch Event Called",
Toast.LENGTH_LONG).show();*/
gestureDetector.onTouchEvent(event);
return true;
}
});
答案 0 :(得分:0)
最佳做法是扩展imageView并制作customImageView。
在customImageView中保留图像的原始大小和图像当前状态的轨迹(放大/缩小),然后在xml中使用customImageView而不是android imageView。
您可以将缩放方法放在customImageView中。然后你有一个customImageView知道如何放大,回到原始大小及其当前状态。