android setbackgrounddrawable is deprecated 解决方案

今天,简单讲讲android如何解决setbackgrounddrawable过时的问题。

解决前:

Drawable draw = getResources().getDrawable(R.drawable.top_day);
view.setBackgroundDrawable(draw);

遇到问题:

setBackgroundDrawable is deprecated  as of API 16;

即过时,需要替换

解决方案一:(setBackgroundDrawable换为setBackgroundResource)

view.setBackgroundResource(R.drawable.top_day);

使用setBackgroundResource方法且传入的参数直接是resource的id,无需再去通过ID获得View,更加方便。

解决方案二:(使用setBackground替代)

view.setBackground(getResources().getDrawable(R.drawable.top_day));

需要注意的是:虽然setBackground和setBackgroundResource都可以替代setbackgrounddrawable,但是setBackground是从API 16以后才有的,之前没有这个函数。所以最好使用setBackgroundResource,这个方法是从Api 1开始就有,所以就不用担心了。

也可以使用如下方法:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    setBackground(drawable);
} else {
    setBackgroundDrawable(drawable);
}

完美解决~

如果一直都在尝试平凡,你永远不知道自己有多出色~

猜你喜欢

转载自blog.csdn.net/Ctrl_qun/article/details/106202826
今日推荐