user3522370
user3522370

Reputation: 81

Converting bitmap to drawable in Android

I'm downloading the image from server and storing it in bitmap object. I want to set this image as background for button. But the button doesn't have the property setImageBitmap. So is there anyway I can set the background of button with the downloaded bitmap image? Like by converting the bitmap to drawable? Sorry, I'm new to Android, please bear with my mistakes (if any).

P.S : I want to use button control only. Because I want some text at the bottom of each buttons and I'm creating these buttons dynamically.

Upvotes: 6

Views: 29910

Answers (4)

Minixuru
Minixuru

Reputation: 101

This is how to do it, I've used several times:

Drawable drawable = (Drawable)new BitmapDrawable(Bitmap);    
Button button= new Button(this);    
button.setBackground(drawable); 

Upvotes: 1

Spring Breaker
Spring Breaker

Reputation: 8251

The best way to convert a Bitmap to drawable in android is as follows,

Drawable drawable = new BitmapDrawable(getResources(), bitmap); 

where bitmap is the name the Bitmap. Then set the drawable as your Button background as follows,

btn.setBackground(drawable);

N.B: Without specifying getResources() as the first argument, you may experience inconsistent image sizing across different screen densities.

for more info refer this http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html

Upvotes: 19

AndyN
AndyN

Reputation: 1754

Convert Bitmap to BitmapDrawable like this

Drawable drawable = new BitmapDrawable(getResources(),your_bitmap);

and then set it as background to button as ,

button.setBackgroundDrawable(drawable);

P.S. You can also do the same inline as ,

button.setBackgroundDrawable(new BitmapDrawable(getResources(),your_bitmap));

Upvotes: 1

Amresh
Amresh

Reputation: 2108

Simply use BitmapDrawable.

Drawable drawable=new BitmapDrawable(contact_pic); 

Upvotes: 1

Related Questions