从android中的bitmap / drawable获取资源ID

时间:2014-09-06 02:36:46

标签: android bitmap

我有一个要在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),但必需参数是整数(不可绘制)。
有没有办法在不使用弃用方法的情况下实现该位图,可能将位图drawable转换为资源?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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