Drawable drawable = null;设置.setBackgroundDrawable(mContext.getResources().getDrawable(R.mipmap.masking_head));
时间: 2024-04-22 22:26:13 浏览: 106
在最新的Android版本中,`setBackgroundDrawable()`方法已经被废弃了,推荐使用`setBackground()`方法来设置背景。
要设置一个drawable作为背景,可以使用以下代码:
```java
Drawable drawable = mContext.getResources().getDrawable(R.mipmap.masking_head);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
view.setBackground(drawable);
} else {
view.setBackgroundDrawable(drawable);
}
```
这段代码首先获取指定的drawable资源,然后根据当前设备的Android版本,使用不同的方法来设置背景。如果设备的Android版本高于等于JELLY_BEAN(API级别16),则调用`setBackground()`方法;否则,调用`setBackgroundDrawable()`方法来设置背景。
注意:在使用`setBackgroundDrawable()`方法时,需要确保你的最低支持的Android版本是JELLY_BEAN或更高。如果你的最低支持版本较低,可以根据需要进行适当调整。
相关问题
/** * 获取首选图标id * * @param isSelected 被选中 * @return 首选图标id */ public int getPreferIconId(boolean isSelected) { int drawableId; switch (mPreferValue) { case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_TIME_FIRST: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_time_first_selected : R.drawable.nsdk_drawable_route_sort_time_first_normal; break; case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DISTANCE_FIRST: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_distance_first_selected : R.drawable.nsdk_drawable_route_sort_distance_first_normal; break; case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_avoid_traffic_jam_selected : R.drawable.nsdk_drawable_route_sort_avoid_traffic_jam_normal; break; case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_NOHIGHWAY: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_nohighway_selected : R.drawable.nsdk_drawable_route_sort_nohighway_normal; break;
这段代码是一个方法`getPreferIconId`,用于获取首选图标的资源ID。
以下是代码的解释:
- `getPreferIconId`是一个公共方法,它接受一个布尔类型的参数`isSelected`,表示是否被选中。
- 在方法中,根据成员变量`mPreferValue`的不同值,使用`switch`语句来决定返回不同的首选图标资源ID。
- 如果`mPreferValue`为`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_TIME_FIRST`,则根据`isSelected`的值来返回相应的图标资源ID。
- 如果`mPreferValue`为`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DISTANCE_FIRST`,则根据`isSelected`的值来返回相应的图标资源ID。
- 如果`mPreferValue`为`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM`,则根据`isSelected`的值来返回相应的图标资源ID。
- 如果`mPreferValue`为`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_NOHIGHWAY`,则根据`isSelected`的值来返回相应的图标资源ID。
以上是对代码段的解释,如果还有其他部分需要解释,请继续发送给我。
case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_ROAD_FIRST: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_road_first_selected : R.drawable.nsdk_drawable_route_sort_road_first_normal; break; case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_NOTOLL: // 少油费(驾车)与省钱路线(货车)针对的车辆类型不同,省钱路线是在少邮费的基础上结合车辆油耗进行了二次运算 case IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_ECONOMIC_ROUTE: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_notoll_selected : R.drawable.nsdk_drawable_route_sort_notoll_normal; break; default: drawableId = isSelected ? R.drawable.nsdk_drawable_route_sort_default_selected : R.drawable.nsdk_drawable_route_sort_default_normal; break; } return drawableId; } }
在这段代码中,`switch`语句继续判断`mPreferValue`的值,并根据不同的情况返回相应的图标资源ID。
以下是代码的解释:
- 如果`mPreferValue`为`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_ROAD_FIRST`,则根据`isSelected`的值来返回相应的图标资源ID。
- 如果`mPreferValue`为`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_NOTOLL`或者`IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_ECONOMIC_ROUTE`,则根据`isSelected`的值来返回相应的图标资源ID。
- 如果以上条件都不满足,则返回默认的图标资源ID。
最后,方法返回获取到的图标资源ID。
以上是对代码段的解释,如果还有其他部分需要解释,请继续发送给我。
阅读全文