在 Android 开发中,咱们经常遇到对 View 组件的背景颜色或者背景图片进行一些动态的设置。那么常见的这四种方法每每分不清楚,下面咱们来看下它们之间的不一样之处。java
setBackground(Drawable background)
方法的参数是一个Drawable对象.该方法用于设置view组件的背景图片。其中 Drawable
对象能够这样获取:Drawable background = getResources().getDrawable(R.drawable.xxx);
复制代码
setBackgroundDrawable(Drawable background)
方法跟setBackground大致相同。setBackgroundResource(int resId)
方法的参数是一个组件的id值。该方法也是用于加载组件的背景图片的。setBackgroundColor(Color.XXX)
方法参数为一个 Color 类的静态常量,它是用来设置背景颜色的方法。咱们在动态设置背景颜色或图片时,有可能该背景颜色有圆角,若是咱们直接设置背景颜色,那么原先的圆角就会没有了。因此,若是背景颜色有圆角的话,就不能直接设置了。咱们使用以下的方法解决。git
Drawable drawable = tv.getBackground();
if (null != drawable && drawable instanceof GradientDrawable) {
// 这种状况是设置了带shape的背景颜色
((GradientDrawable)drawable).setColor(Color.GREEN);
}
复制代码
About Megithub