我有一个imageview,我正准备在doubletap上进行缩放..
代码每次都运行并且正确运行正确的条件,当它的大而小的时候变小,当它的小时候变大......
奇怪的是,第一次运行代码时,它显示它运行了getsmall,但是图像本身从未缩小..第二次将比例运行到大,我不知道这是否有效或者不是因为在执行之前图像已经很大..但是在第三次执行时它再次运行make small condition,并且图像缩小,从那时起,图像在屏幕上按预期变大和变小。 / p>
这个imageview是用一个比例类型为CENTER来实现的,是的,minScale在第一次尝试缩小时有一个不是1的值。实际上log显示它的值为0.26 ...所以它不是minScale是零第一次通过。
@Override
public boolean onDoubleTap(MotionEvent e) {
// TODO Auto-generated method stub
setScale(globalIV);
System.out.println("DOUBLE TAP "+minScale);
Matrix mtrx = new Matrix();
if(!small){
System.out.println("MAKING SMALL");
mtrx.postScale(minScale, minScale); small=true;
}
else{
mtrx.postScale(1, 1);
mtrx.postTranslate(minx,miny);
System.out.println("MAKING LARGE");
small=false;
}
globalIV.setImageMatrix(mtrx);
globalIV.setScaleType(ScaleType.MATRIX);
globalIV.invalidate();
return false;
}
任何想法?