setBackground,setBackgroundColor,setBackgroundDrawable,setBackgroundResource的使用区别

本文详细介绍了Android开发中视图背景设置的四种方法:通过Drawable对象设置背景图片、直接设置背景颜色、已过时的setBackgroundDrawable方法以及通过资源ID设置背景图片。每种方法都给出了具体的使用场景和示例。

上面四个方法,在代码中设置其背景颜色,有时候就会傻傻的分不清楚!

第一个:setBackground(Drawable background),其参数为一个Drawable对象,目的是设置View的背景图片,获取drawable可以这样获取–getResources().getDrawable(R.drawable.xx)

第二个:setBackgroundColor(int color),其参数是一个颜色值,设置View的背景颜色.其color可以写为Color.parseColor(“#333333”)或者Color.Blue

第三个:setBackgroundDrawable,和第一个是一样的,现在已经过时淘汰了,不建议使用

第四个:setBackgroundResource(int resid)是设置一个view的背景图片,只不过传入的是drawable的id值

以上!

### 关于 `setBackgroundColor` 和 `setBackgroundResource` #### 方法介绍 在 Android 中,`View` 类提供了多种方式用于设置背景。以下是两种常用方法的详细介绍: 1. **`setBackgroundColor(int color)`** - 此方法接受一个整数类型的参数,表示颜色值。 - 颜色值通常通过十六进制形式指定,例如 `0xFFAABBCC` 或者使用资源文件中的颜色 ID(如 `R.color.my_color`)[^1]。 - 它仅能用来设置纯色背景。 2. **`setBackgroundResource(int resid)`** - 接受一个资源 ID 参数,可以是一个图片资源或者 Drawable 资源。 - 可以加载更复杂的背景样式,比如渐变、形状或者其他图像文件。 - 这种方法适用于需要复杂视觉效果的情况,而不仅仅是单一的颜色[^2]。 #### 使用示例 ##### 设置背景颜色 (`setBackgroundColor`) 下面展示了一个简单的例子,演示如何动态改变视图的背景颜色: ```java view.setBackgroundColor(Color.RED); // 或者从资源文件获取颜色 view.setBackgroundColor(ContextCompat.getColor(context, R.color.red)); ``` ##### 设置背景资源 (`setBackgroundResource`) 这里展示了如何利用 XML 文件定义的 Drawable 来作为背景: ```xml <!-- res/drawable/my_background.xml --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#FFAABBCC"/> </shape> ``` 然后在 Java 代码中应用此资源到某个 View 上: ```java view.setBackgroundResource(R.drawable.my_background); ``` #### 主要区别对比 | 特性 | setBackgroundColor | setBackgroundResource | |---------------------|-----------------------------------|----------------------------------| | 输入类型 | int (Color Value) | int (Resource ID) | | 功能范围 | 单一颜色 | 图片/Drawable | | 性能影响 | 较低 | 取决于所使用的资源 | 当目标仅为简单地更改控件的背景为一种固定色调时推荐采用前者;而对于希望实现更加丰富的界面设计,则后者更为合适[^3]。 #### 兼容性和注意事项 需要注意的是,在不同版本的 Android 系统之间可能存在细微差异。例如,对于较老版 API 的支持情况,请参照之前提到过的条件分支逻辑处理方案来确保程序能在各种设备环境下正常运行。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值