我注意到,RelativeLayout对象的setBackground方法针对 API 16(Android 4.1)及更高版本,但我的应用程序具有目标 API 8,我无法使用它。
是否有任何替代解决方案可以解决此问题(除了使用TargetApi (16) 标记类/方法或更改清单中的目标 API)?
谢谢!
编辑:Eclipse 是错误的,它向我显示了setBackgroundDrawable的相同错误,但现在它似乎可以工作。谢谢您的帮助。
我注意到,RelativeLayout对象的setBackground方法针对 API 16(Android 4.1)及更高版本,但我的应用程序具有目标 API 8,我无法使用它。
是否有任何替代解决方案可以解决此问题(除了使用TargetApi (16) 标记类/方法或更改清单中的目标 API)?
谢谢!
编辑:Eclipse 是错误的,它向我显示了setBackgroundDrawable的相同错误,但现在它似乎可以工作。谢谢您的帮助。
使用以下之一:
.setBackgroundColor(int)
(如果您将其设置为颜色).setBackgroundDrawable(Drawable)
(如果您将其设置为一种Drawable
类型;这已被弃用,并被替换为.setBackground(Drawable)
).setBackgroundResource(int)
(用于设置资源R.java
)如果您使用第二个,请确保对您的 API 版本进行条件检查:
if (Build.VERSION.SDK_INT >= 16)
view.setBackground(...);
else
view.setBackgroundDrawable(...);
...并用 and 标记@TargetApi(16)
它@SuppressWarnings("deprecation")
。
这取决于。如果要将颜色设置为背景,请使用setBackgroundColor()
. 对于 Drawable,您可以对setBackgroundDrawable()
16 以下的 API 和setBackground()
API 16 设备使用现已弃用的方法。您还可以setBackgroundResource()
用于将资源设置为背景。
请注意,虽然许多方法被标记为已弃用,但我还没有遇到一个实际上已被删除的方法。因此,即使在 API 16 中您也可以使用已弃用的方法,但我建议您将目标 API 设置为 16 并使用 if else 在方法之间切换,具体取决于设备运行的 API 版本。
请改用setBackgroundDrawable()。它做同样的事情,但自从新setBackground()
方法以来它已被弃用。