Android:从PhotoView获取可见的位图部分?

时间:2017-04-18 13:35:55

标签: android bitmap android-photoview

我使用PhotoView库:https://github.com/chrisbanes/PhotoView

这是我最初的案例;它是PhotoView组件(红色方块);背景是透明的。我在里面加载一张标准图片。

enter image description here

现在,我想将可见位图部分提取到另一个位图:

Bitmap original = mPhotoView.getVisibleRectangleBitmap();
        return Bitmap.createBitmap(original, 0, 0, original.getWidth(), original.getHeight(),
                mPhotoView.getImageMatrix(), true);

但结果很糟糕,因为有黑色区域,我不知道为什么......我只想提取带有图片的区域而不是所有PhotoView。

enter image description here

如何在没有背景的情况下提取?

非常感谢你们!

1 个答案:

答案 0 :(得分:0)

PhotoView extends ImageView所以你可以在Photoview上调用getDrawable()来获得Drawable

获得Drawable后,如果它始终为BitmapDrawable,则可以在其上调用getBitmap()并获得位图。如果你不能保证这一点,你可以从阅读this question开始,找到最好的转换方式。

这当然会忽略对视图进行的任何缩放或转换。如果保留这一点很重要,那么这个答案就无关紧要了。遗憾。