Android imageview scaletype矩阵不修改图像第一次执行

时间:2011-07-08 21:37:14

标签: android matrix imageview

我有一个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;
        }

任何想法?

0 个答案:

没有答案