【问题标题】:Converting bitmap to drawable in Android在Android中将位图转换为可绘制
【发布时间】:2014-05-31 04:29:27
【问题描述】:

我正在从服务器下载图像并将其存储在位图对象中。我想将此图像设置为按钮的背景。但是该按钮没有属性 setImageBitmap。那么无论如何我可以用下载的位图图像设置按钮的背景吗?就像通过将位图转换为可绘制的一样?抱歉,我是 Android 新手,请原谅我的错误(如果有的话)。

P.S:我只想使用按钮控制。因为我想在每个按钮的底部添加一些文本,并且我正在动态创建这些按钮。

【问题讨论】:

标签: android


【解决方案1】:

只需使用BitmapDrawable

Drawable drawable=new BitmapDrawable(contact_pic); 

【讨论】:

    【解决方案2】:

    在android中将Bitmap转换为drawable的最佳方法如下,

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

    其中bitmapBitmap 的名称。然后将drawable设置为您的Button背景,如下所示,

    btn.setBackground(drawable);
    

    注意:如果不指定 getResources() 作为第一个参数,您可能会在不同的屏幕密度下遇到不一致的图像大小。

    更多信息请参考这里 http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html

    【讨论】:

      【解决方案3】:

      像这样将Bitmap 转换为BitmapDrawable

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

      然后将其设置为按钮的背景,

      button.setBackgroundDrawable(drawable);
      

      P.S.你也可以做同样的内联,

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

      【讨论】:

        【解决方案4】:

        这是怎么做的,我用过好几次了:

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

        【讨论】:

        • setBackground 方法仅适用于 API 级别 16。
        • 如何在 setCompoundDrawablesWithIntrinsicBounds(int, int, int, int) 方法中使用转换后的drawable?因为它需要所有的 int 参数。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-06
        • 2013-02-21
        • 1970-01-01
        • 2013-06-06
        相关资源
        最近更新 更多