我正在开发一个Android应用程序(API 19 4.4),我遇到了ImageViews的一些问题.我有一个SurfaceView,我在其中动态添加我想对触摸事件做出反应的ImageViews.到目前为止,我已经成功地使ImageView移动并且平滑地缩放,但是我有一个讨厌的行为.
当我将图像缩小到一定限度(我会说原始尺寸的一半)并且我尝试移动它时,图像闪烁.经过简短的分析,它似乎是围绕屏幕上的手指点对称地切换它的位置,累积距离,最后消失(所有这些都发生得非常快(<1s).我想我错过了与亲戚的关系触摸事件对ImageView/SurfaceView的价值,但我是一个相当的菜鸟,我被困了......
这是我的代码
public class MyImageView extends ImageView {
private ScaleGestureDetector mScaleDetector ;
private static final int MAX_SIZE = 1024;
private static final String TAG = "MyImageView";
PointF DownPT = new PointF(); // Record Mouse Position When Pressed Down
PointF StartPT = new PointF(); // Record Start Position of 'img'
public MyImageView(Context context) {
super(context);
mScaleDetector = new ScaleGestureDetector(context,new MySimpleOnScaleGestureListener());
setBackgroundColor(Color.RED);
setScaleType(ScaleType.MATRIX);
setAdjustViewBounds(true);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(-MAX_SIZE, -MAX_SIZE, -MAX_SIZE, -MAX_SIZE);
this.setLayoutParams(lp);
this.setX(MAX_SIZE);
this.setY(MAX_SIZE);
}
int …Run Code Online (Sandbox Code Playgroud)