我已經注意到,的setBackground爲RelativeLayout的對象方法是針對API 16(安卓4.1)或更高版本,但我的應用程序有目標API 8,我不能使用它。Android的 - 組佈局的背景編程
是否存在針對此問題的任何替代解決方案(除了用TargetApi(16)或更改清單中的目標API來標記類/方法?
謝謝!
編輯:Eclipse的是越野車,它給我同樣的錯誤setBackgroundDrawable但現在它似乎工作。感謝您的幫助。
我已經注意到,的setBackground爲RelativeLayout的對象方法是針對API 16(安卓4.1)或更高版本,但我的應用程序有目標API 8,我不能使用它。Android的 - 組佈局的背景編程
是否存在針對此問題的任何替代解決方案(除了用TargetApi(16)或更改清單中的目標API來標記類/方法?
謝謝!
編輯:Eclipse的是越野車,它給我同樣的錯誤setBackgroundDrawable但現在它似乎工作。感謝您的幫助。
用途之一:
.setBackgroundColor(int)
(如果你將其設置爲彩色).setBackgroundDrawable(Drawable)
(如果你將其設置爲一個Drawable
型;這已被棄用,被取代.setBackground(Drawable)
).setBackgroundResource(int)
(用於設置從R.java
資源)如果我們E中的第二個,確保做對你的API版本條件檢查:
if (Build.VERSION.SDK_INT >= 16)
view.setBackground(...);
else
view.setBackgroundDrawable(...);
...與@TargetApi(16)
和@SuppressWarnings("deprecation")
對它進行標記。
改爲使用setBackgroundDrawable()。它做同樣的事情,但自從新的setBackground()
方法以來它已被棄用。的
這取決於。如果你想設置一個顏色作爲背景,使用setBackgroundColor()
。對於Drawable,您可以將現在不推薦使用的方法setBackgroundDrawable()
用於16位以下的API,對於API 16設備則使用setBackground()
。您也可以使用setBackgroundResource()
將資源設置爲背景。
請注意,雖然許多方法被標記爲不推薦,但我還沒有碰到實際上已被刪除的方法。因此,雖然即使在API 16中也可以使用棄用的方法,但我建議將目標API設置爲16,並使用if else在方法之間切換,具體取決於設備運行的API版本。
啊我知道.setBackgroundDrawable(可繪製)方法,但對我來說,IDE有與api 16要求相同的錯誤。我正在使用Eclipse,並且在重新打開ide並清理代碼後,它似乎成了一個bug。比你非常抱歉,麻煩。 – sethengine
@sethengine不要擔心麻煩 - 我們來幫忙!很高興你解決了這個問題。 – Eric