我想设置一个视图的背景绘图。这有两个方法(据我所知):setBackground和setBackgroundDrawable。
当我使用setBackground时,它说它已添加在API级别16,但我的项目的最小SDK版本是7。我猜在16秒以下就不管用了,对吗?但当我使用setBackgroundDrawable时,它说它已弃用。
我应该用什么?
我想设置一个视图的背景绘图。这有两个方法(据我所知):setBackground和setBackgroundDrawable。
当我使用setBackground时,它说它已添加在API级别16,但我的项目的最小SDK版本是7。我猜在16秒以下就不管用了,对吗?但当我使用setBackgroundDrawable时,它说它已弃用。
我应该用什么?
当前回答
我知道这是一个老问题,但我也有类似的情况,我的解决方案是
button.setBackgroundResource( R.drawable.ic_button );
Drawable d = button.getBackground();
然后你可以使用“绘制”,应用颜色滤镜等等
其他回答
您可以使用API级别1中的setBackgroundResource()代替。
使用Android studio 1.5.1我得到以下警告:
Call requires API level 16 (current min is 9): android.view.View#setBackground
还有关于折旧的抱怨
'setBackgroundDrawable(android.graphics.drawable.Drawable)' is deprecated
使用这个格式,我摆脱了这两个:
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
//noinspection deprecation
layout.setBackgroundDrawable(drawable);
} else {
layout.setBackground(drawable);
}
使用ViewCompat。setBackground(视图、背景);
你可以使用setBackgroundResource()代替,即relativeLayout.setBackgroundResource(R.drawable.back);
这对我很有用。
使用setBackgroundResource (R.drawable.xml / png)