今天我在我的 Nexus 7 上设置了新的Android JB 4.3,并尝试运行我的应用程序。
除了带有ScaleType.MATRIX的ImageViews的一件小事之外,一切都像它应该的那样工作。
基本上,我在我的应用程序中拥有一个ImageView作为背景,并且根据ViewPager回调,我移动了图像的焦点部分,更新了我使用setImageMatix(Matrix matrix)提供给 imageView 的矩阵。
问题似乎是我无法再更新矩阵了,我只需要实例化一个新矩阵并将其传递给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();
}
在职的
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();
}
编辑:
在第一种情况下,图像显示在 ImageView 的左上角,没有应用任何缩放或平移,就像矩阵恢复身份一样。