android 如何检查 imageview 当前是否缩放?
How to check if imageview is currently zoomed or not in android?
我正在通过双击将图像视图缩放到某些特定点。在双击事件中,它可以完美放大,但我也想实现缩小的功能,当用户双击图像时,图像被放大,但当他再次双击时,放大的图像必须恢复到原始大小
如何做到这一点?任何帮助将不胜感激
这是我的代码
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;
}
});
最佳做法是扩展 imageView 并制作自定义 ImageView。
在您的 customImageView 中保持图像的原始大小和图像当前状态的轨迹(缩放 in/out),然后在您的 xml 中使用您的 customImageView 而不是 android imageView 。
您可以将您的缩放方法放在您的 customImageView 中。然后你有一个 customImageView 知道如何放大,回到原来的大小和它的当前状态。
我正在通过双击将图像视图缩放到某些特定点。在双击事件中,它可以完美放大,但我也想实现缩小的功能,当用户双击图像时,图像被放大,但当他再次双击时,放大的图像必须恢复到原始大小 如何做到这一点?任何帮助将不胜感激 这是我的代码
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;
}
});
最佳做法是扩展 imageView 并制作自定义 ImageView。
在您的 customImageView 中保持图像的原始大小和图像当前状态的轨迹(缩放 in/out),然后在您的 xml 中使用您的 customImageView 而不是 android imageView 。
您可以将您的缩放方法放在您的 customImageView 中。然后你有一个 customImageView 知道如何放大,回到原来的大小和它的当前状态。