2017-04-18 11 views
0

私はPhotoViewライブラリを使用しています:https://github.com/chrisbanes/PhotoViewAndroid: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

大変ありがとうございます!

答えて

0

PhotoView extends ImageViewですので、Drawableを取得するためにPhotoviewでgetDrawable()と電話することができます。

Drawableを取得したら、いつもBitmapDrawableであれば、getBitmap()を呼び出して、ビットマップを取得できます。それが保証できない場合は、this questionまで読んでから、最適な変換方法を見つけることができます。

もちろん、ビューに加えられたズーミングや変形は無視されます。それが重要であれば、この答えは関係ありません。ごめんなさい。

+0

スティーブンス、まだ黒い部分がまだあります! – anthony

+0

@anthony元の画像を元に戻そうとしているのですか、またはユーザーが設定した変換で新しい画像を取得しようとしていますか? – Stephen

+0

@anthony私はこのように試してみましたが、うまくいきました。 https://bitbucket.org/randomsnippets/http-stackoverflow.com-questions-43473786ユーザーがビューに適用した変換をキャプチャしようとしているのかどうかはまだ分かりませんが、元のイメージ、この方法で動作するはずです。 – Stephen