Textview
に2つのビュー(ImageView
&FrameLayout
)があります。画像をテキストで保存します。このため、ビューをビットマップに変換します。
私のxmlは:
<FrameLayout
Android:id="@+id/framelayout"
Android:layout_marginTop="30dip"
Android:layout_height="fill_parent"
Android:layout_width="fill_parent">
<ImageView
Android:id="@+id/ImageView01"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"/>
<TextView Android:id="@+id/text_view"
Android:layout_marginTop="30dip"
Android:layout_width="wrap_content"
Android:maxLines="20"
Android:scrollbars="vertical"
Android:layout_height="wrap_content"/>
</FrameLayout>
ビューをビットマップに変換する方法
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
以前はbuildDrawingCache()
メソッドを使用してレイアウトのビットマップを取得していましたが、ビューが大きい場合は 問題がありました でした。次の方法を使用します。
FrameLayout view = findViewById(R.id.framelayout);
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
こんにちは、次のスニペットを使用してビューのビットマップを取得できます
mView.setDrawingCacheEnabled(true);
mView.getDrawingCache();
imageViewを拡張し、onDrawメソッドをオーバーライドし、イメージとテキストをそこに配置するクラスを作成してみませんか。