问题描述
我注意到 RelativeLayout 对象的 setBackground 方法针对 API 16 (Android 4.1) 及更高版本,但我的应用程序具有目标 API 8 和我不能使用它.
I have noticed that the setBackground method for the RelativeLayout object is targeted for API 16 (Android 4.1) and higher, but my application has the target API 8 and I cannot use it.
是否有其他解决方案可以解决此问题(除了使用 TargetApi(16) 标记类/方法或更改清单中的目标 API)?
谢谢!
Is there any alternative solution for this problem (besides marking the class/method with TargetApi(16) or changing the target API in the manifest)?
Thank you!
编辑:Eclipse 有问题,它向我显示了与 setBackgroundDrawable 相同的错误,但现在它似乎可以工作了.感谢您的帮助.
Edit: Eclipse was buggy and it showed me the same error for setBackgroundDrawable but now it seems to work. Thank you for your help.
推荐答案
使用以下之一:
.setBackgroundColor(int)
(如果您将其设置为颜色).setBackgroundDrawable(Drawable)
(如果您将其设置为Drawable
类型;这已被弃用,并由.setBackground(Drawable)
).setBackgroundResource(int)
(用于从R.java
设置资源)
.setBackgroundColor(int)
(if you're setting it to a color).setBackgroundDrawable(Drawable)
(if you're setting it to aDrawable
type; this is deprecated, and was replaced by.setBackground(Drawable)
).setBackgroundResource(int)
(for setting a resource fromR.java
)
如果您使用第二个,请确保对您的 API 版本进行条件检查:
If you use the second one, make sure to do a conditional check on your API version:
if (Build.VERSION.SDK_INT >= 16)
view.setBackground(...);
else
view.setBackgroundDrawable(...);
...并用 @TargetApi(16)
和 @SuppressWarnings("deprecation")
标记它.
... and mark it with @TargetApi(16)
and @SuppressWarnings("deprecation")
.
这篇关于Android - 以编程方式设置布局背景的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!