私は実用的な本棚からタッチV2の例を使用してロードされたビットマップイメージとRelativeLayoutを持っていますギャラリーからの画像。活動上の画像はRelativeLayoutにビットマップとしてロードされる結果:view.getDrawingCache()が一度だけ動作します
public void getPictureFromFile(Uri targetUri){
try {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = scale(getContentResolver()
.openInputStream(targetUri));
workinprogress = BitmapFactory.decodeStream(
getContentResolver().openInputStream(targetUri),
null, options);
view.setImageBitmap(workinprogress);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
一つ次のボタンクリック、私が使用してrelativelayoutのイメージをつかむ:
thepicture.buildDrawingCache(true);
Bitmap bm = Bitmap.createBitmap(thepicture.getDrawingCache());
プロセスは素晴らしい作品 - 最初の画像の場合。もう一度別のイメージをロードすると、渡されたビットマップは元のイメージと変わりません。私はthepicture.invalidate()とthepicture.resetDrawableState()の前にgetDrawingCache()を試しましたが、フレームレイアウトで正しいイメージが表示されているにもかかわらず、どちらもイメージを新しくロードしたピクチャに更新していないようです。
ロードする2番目のイメージを実装するために必要なdrawingCacheをリフレッシュすることについてわからないことがありますか?
+1これは私が時間を無駄にしないように保存しました。ニースone dmytro –
描画キャッシュを有効にする別の方法として、 'imageView.buildDrawingCache()'を呼び出して描画キャッシュを取得し、 'imageView.destroyDrawingCache()'を呼び出すこともできます。 http://developer.android.com/reference/android/view/View.html#buildDrawingCache() – lilbyrdie
をご覧ください。ありがとうございました。 –