web-dev-qa-db-ja.com

ビューをビットマップに変換する方法は?

Textviewに2つのビュー(ImageViewFrameLayout)があります。画像をテキストで保存します。このため、ビューをビットマップに変換します。

私の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>
34

ビューをビットマップに変換する方法

FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap bm = view.getDrawingCache();
79
Niranj Patel

以前は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);
17
Suragch

こんにちは、次のスニペットを使用してビューのビットマップを取得できます

mView.setDrawingCacheEnabled(true);
mView.getDrawingCache();
2
Jana

imageViewを拡張し、onDrawメソッドをオーバーライドし、イメージとテキストをそこに配置するクラスを作成してみませんか。

1
Buda Gavril