0

私は2つのイメージビューからなる相対レイアウトのスクリーンショットを撮ろうとしています。画像ビューの1つは、オンのときに動くことができます。ここでビットマップへのレイアウトのAndroidスクリーンショット

コードは以下の

<RelativeLayout 
android:id="@+id/imageLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<ImageView 
    android:id="@+id/imgPhoto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    /> 

<ImageView 
    android:id="@+id/imgBackground" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerInParent="true" 
    android:layout_centerVertical="true" 
    /> 
</RelativeLayout> 

どのように見えるかだ、私はレイアウトのビットマップを作成するために持っているコードです。

 imageLayout.setDrawingCacheEnabled(true); 
     imageLayout.buildDrawingCache(); 
     Bitmap mergedImage = imageLayout.getDrawingCache(); 

コードは正常に動作し、2つの画像のスクリーンショットを撮ることができます。しかし、imgPhotoを動かすと、スクリーンショットには変更された位置が反映されません。それは元のunmoved imgPhotoをまだ示しています。どうすれば修正できますか?ありがとう。

答えて

1

はあなたがもう一度試して前に描画キャッシュを無効にしてみてください:

imageLayout.setDrawingCacheEnabled(true); 
imageLayout.buildDrawingCache(); 
Bitmap mergedImage = imageLayout.getDrawingCache(); 
imageLayout.setDrawingCacheEnabled(false); 

動作する必要があること。

View.destroyDrawingCache()も使用できます。

関連する問題