我想用变量替代R.drawable.my_image该怎么办
时间: 2023-10-15 07:04:10 浏览: 73
您可以使用变量来替代R.drawable.my_image。首先,您需要定义一个整型变量来存储图像资源的ID。然后,您可以使用变量来设置图像视图或其他需要图像资源ID的地方。
例如,假设您有一个变量`imageResourceId`来存储图像资源的ID:
```java
int imageResourceId = R.drawable.my_image;
```
然后,您可以使用`imageResourceId`来设置图像视图的图像:
```java
ImageView imageView = findViewById(R.id.image_view);
imageView.setImageResource(imageResourceId);
```
这样,您就可以通过更改`imageResourceId`的值来动态地设置不同的图像资源ID。请确保变量的值与可用的图像资源ID相匹配,否则可能会导致运行时错误。
相关问题
/** * 获取首选图标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。
以上是对代码段的解释,如果还有其他部分需要解释,请继续发送给我。
阅读全文