【问题标题】:Getting resource ID from bitmap/drawable in android从android中的位图/drawable获取资源ID
【发布时间】:2014-09-06 02:36:46
【问题描述】:

我有一个要在 ImageView 中显示的位图可绘制图像,下面是我的代码:

BitmapDrawable bitmapGrass = (BitmapDrawable)
    getResources().getDrawable(R.drawable.grass);
bitmapGrass.setTileModeX(TileMode.REPEAT);

我想将该位图设置为 ImageView 的背景,如下所示:

ImageView bgGrass = (ImageView) findViewById(R.id.image_grass);
bgGrass.setBackground(bitmapGrass);

现在的问题是,setBackground() 方法是在 API 级别 16 中添加的,但我希望我的应用程序支持 API 级别 4。我知道我可以使用此代码:

bgGrass.setBackgroundDrawable(bitmapGrass);

setBackgroundDrawable() 方法已被弃用。设置背景的另一种方法是使用方法setBackgroundResource(int),但需要的参数是整数(不可绘制)。
有什么方法可以在不使用不推荐使用的方法的情况下实现该位图,也许将位图可绘制转换为资源?

谢谢!

【问题讨论】:

    标签: android bitmap


    【解决方案1】:

    实际上调用setBackgroundDrawable 很好,尽管它在较新的平台中已被弃用。您可以在运行时检查sdk级别并调用具体方法:

    if(Build.VERSION.SDK_INT >= 16) {
                //call setBackground()
    } else {
                //call settBackgroundDrawable()
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-10
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2011-05-24
      • 2018-03-23
      • 1970-01-01
      相关资源
      最近更新 更多