I'm trying to inflate a layout and use that to set a bitmap on an image view. Then, I'm adding that imageview to a linear layout and displaying the linear layout. Here's what I've tried:
public class TestActivity extends Activity {
private static Bitmap bitMap;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout l = new LinearLayout(this);
bitMap = Bitmap.createBitmap(getWindowManager().getDefaultDisplay().getWidth(),
getWindowManager().getDefaultDisplay().getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitMap);
LayoutInflater inflater = LayoutInflater.from(this);
View v1 = inflater.inflate(R.layout.main, null);
v1.layout(0, 0, getWindowManager().getDefaultDisplay().getWidth(),
getWindowManager().getDefaultDisplay().getHeight());
v1.draw(canvas);
ImageView i1 = new ImageView(this);
i1.setImageBitmap(bitMap);
i1.setAdjustViewBounds(true);
i1.setLayoutParams(new FrameLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth(),
getWindowManager().getDefaultDisplay().getHeight()));
l.addView(i1);
setContentView(l);
}
}
Unfortunately, the bitMap is not being created properly. Is there anything I'm doing wrong?
Convert a layout to Bitmap.
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
You cant get bitmap on the views or layout is not being inflated.
Layout will only getting inflated after OnCreate()
.
1.Get bitmap on Button_Clicked(View view){}
2.Or using a Handle()
to post delaying your get bitmap
3.Make sure drawing cache is created using view.buildDrawingCache();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With