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);
}

完美解決~

如果一直都在嘗試平凡,你永遠不知道自己有多出色~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章