How to convert View to Bitmap in android?

I use the following line to convert a view to a bitmap in android.

view.setDrawingCacheEnabled(true); Bitmap b= view.getDrawingCache(); 

I have a value in the view when I convert to Bitmap showing the bitmap value is null.

+4
source share
4 answers

Activity class In this class, I Convert a layout (view) to an image.

 import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; public class ImageActivity extends Activity { LinearLayout layout=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_convert); layout=(LinearLayout)findViewById(R.id.layout); ((ImageView)findViewById(R.id.ImageView01)).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Bitmap map=ConvertToBitmap(layout); Log.v("BitmapObject", map.toString()); } }); } protected Bitmap ConvertToBitmap(LinearLayout layout) { Bitmap map; layout.setDrawingCacheEnabled(true); layout.buildDrawingCache(); return map=layout.getDrawingCache(); } } 
+6
source

Use the code below: just replace its value

 YourView view = (YourView )findViewById(R.id.yourViewId); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bm = view.getDrawingCache(); 

Link

+3
source

Try the following:

 LinearLayout view1 = (LinearLayout) findViewById(R.id.linear1); ImageView my_image = (ImageView) findViewById(R.id.my_imageView); Bitmap b = Bitmap.createBitmap(view1.getWidth(), view1.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); view1.draw(c); my_image.setImageBitmap(b); 

Hope this helps you.

Thanks.

+1
source

It can work

 public static Bitmap getBitmapFromView(View view) { Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(returnedBitmap); view.layout(0, 0, view.getLayoutParams().width, view.getLayoutParams().height); view.draw(canvas); return returnedBitmap; } 
0
source

All Articles