在安卓中将位图转换为可绘制对象

6
我正在从服务器下载图片并将其存储在位图对象中。我想将此图像设置为按钮的背景。但是,该按钮没有setImageBitmap属性。那么,有没有办法使用下载的位图图像设置按钮的背景?比如将位图转换为drawable?抱歉,我对Android很陌生,请包容我的错误(如果有的话)。
附注:我只想使用按钮控件。因为我希望每个按钮底部都有一些文本,并且我正在动态创建这些按钮。

将您的 Bitmap 转换为 BimapDrawable - M D
1
可能是重复的问题:如何在Android中将位图转换为Drawable? - The Holy Coder
4个回答

19
在安卓中将 Bitmap 转换为 drawable 的最佳方法如下:
Drawable drawable = new BitmapDrawable(getResources(), bitmap); 

其中bitmapBitmap的名称。然后将可绘制对象设置为您的Button背景,如下所示:

其中bitmapBitmap的名称。然后将可绘制对象设置为您的Button背景,如下所示,

btn.setBackground(drawable);

注意: 如果没有将getResources()指定为第一个参数,则可能会在不同屏幕密度下出现不一致的图像大小。

欲了解更多信息,请参考http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html


1

只需使用BitmapDrawable即可。

Drawable drawable=new BitmapDrawable(contact_pic); 

1

像这样将 Bitmap 转换为 BitmapDrawable

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

然后将其设置为按钮的背景,如下:
button.setBackgroundDrawable(drawable);

P.S. 你也可以内联地进行相同的操作,如下所示:

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

1

这是如何做到的,我已经使用过多次:

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

setBackground方法仅适用于API级别16及以上。 - user3522370
我该如何在 setCompoundDrawablesWithIntrinsicBounds(int, int, int, int) 方法中使用转换后的 drawable?因为它需要所有的 int 参数。 - user3522370

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接