今天,簡單講講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);
}
完美解決~
如果一直都在嘗試平凡,你永遠不知道自己有多出色~