How to convert Views to bitmaps?
I have two Views (Textview
& ImageView
) in the FrameLayout
, I want to save the image with text. For this, I covert the View to a bitmap.
My xml is:
<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>
How to convert View into Bitmap
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
I used to use the buildDrawingCache()
method to get a bitmap of my layout, but I was having trouble with it when the view was large. Now I use the following method:
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);
Hi you can get a bitmap of a view using the following snippet
mView.setDrawingCacheEnabled(true);
mView.getDrawingCache();