今天,简单讲讲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);
}
完美解决~
如果一直都在尝试平凡,你永远不知道自己有多出色~