Android 4.3 ImageView ScaleType.MATRIX

Mar*_*nci 3 android android-imageview android-4.3-jelly-bean

今天我在Nexus 7上设置了新的Android JB 4.3,我试着运行我的应用程序.

除了使用ScaleType.MATRIX的ImageViews之外,Everythings的工作方式应该是应该的.

基本上我在我的应用程序是一个ImageView的背景和相应的ViewPager回调我移动图像的更新聚焦部分矩阵我给使用ImageView的setImageMatix(矩阵矩阵).

问题似乎是我不能再更新矩阵了,我只需要实例化一个新的将它传递给ImageView.

我设法解决它每次实例化一个新的矩阵,但它似乎与旧版本相比内存昂贵.

这是一个BUG吗?有没有办法改造黑客帝国?(顺便说一下,我已经尝试使 ImageView ecc 无效.)

不工作

    private void updateMatrix( final int page, final double offset ) {          
        double pagePosition = page + offset;

        Matrix matrix = imageView.getImageMatrix();
        matrix.setScale( scale, scale );
        matrix.postTranslate( - (float) ( pagePosition * pageWidth ) , 0 );

        imageView.setImageMatrix( matrix );

        imageView.invalidate();
    }
Run Code Online (Sandbox Code Playgroud)

工作

    private void updateMatrix( final int page, final double offset ) {          
        double pagePosition = page + offset;

        Matrix matrix = new Matrix();
        matrix.setScale( scale, scale );
        matrix.postTranslate( - (float) ( pagePosition * pageWidth ) , 0 );

        imageView.setImageMatrix( matrix );

        imageView.invalidate();
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

在第一种情况下,图像显示在ImageView的左上角,没有应用任何比例或平移,就像矩阵回到标识.

Dmi*_*sev 5

只需保留你的Matrixas字段,而不是从中检索它ImageView,你会很高兴:)