如何使用单个 Imageview 显示多个不同图标中的一个
How can I use a single Imageview to display 1 of several different icons
我是新手,如有任何帮助或指导,我们将不胜感激!
如何使用单个 Imageview 在我的可绘制对象中显示多个不同图标中的一个。
举个具体的例子——添加新条目时,用户可以select 15 个不同的预定响应之一。每个都有自己的图标。然后稍后在查看条目时,我需要一个 ImageView 显示与响应相关的图标 selected.
我可以通过在 xml 中设置 15 个图像视图并更改可见性来做到这一点,但这似乎是一种非常混乱且效率低下的方法。
你可以有一个ImageView,使用setImageDrawable方法将图片切换到设备状态。
例如
yourImageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.your_image_resource))
贴出你的代码有助于回答。
When adding a new entry a user can select one of 15 different predetermined responses.
希望您得到的响应是整数(索引)
private static final List<Integer> icon_list = Arrays.asList(R.drawable.option_1,R.drawable.option_2,...R.drawable.option_15);
view.findViewById(R.id.myIcon).setImageDrawable(ContextCompat.getDrawable(activity, ICON_LIST.get(index)));
万一您收到字符串形式的响应,您可以使用散列图存储键值或使用 switch case。
您可以创建一个 bindingAdapter
并对图像视图使用数据绑定,让适配器为您完成工作。有一个使用图像视图的好例子 in the docs here
像这样(我使用枚举作为您的响应类型)
@BindingAdapter("imageCustomDrawable")
fun setCustomDrawable(view: ImageView, responseType: EnumValue) {
val drawableResId = when(responseType) {
EnumValue.OK -> R.drawable.ok_drawable
...
}
view.setImageDrawable(ContextCompat.getDrawable(drawableResId))
}
您的图像视图 xml 将是
<ImageView
android:id="@+id/your_imageview"
app:imageCustomDrawable="@{YOUR_RESPONSE_HERE}"/>
我是新手,如有任何帮助或指导,我们将不胜感激!
如何使用单个 Imageview 在我的可绘制对象中显示多个不同图标中的一个。
举个具体的例子——添加新条目时,用户可以select 15 个不同的预定响应之一。每个都有自己的图标。然后稍后在查看条目时,我需要一个 ImageView 显示与响应相关的图标 selected.
我可以通过在 xml 中设置 15 个图像视图并更改可见性来做到这一点,但这似乎是一种非常混乱且效率低下的方法。
你可以有一个ImageView,使用setImageDrawable方法将图片切换到设备状态。 例如
yourImageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.your_image_resource))
贴出你的代码有助于回答。
When adding a new entry a user can select one of 15 different predetermined responses.
希望您得到的响应是整数(索引)
private static final List<Integer> icon_list = Arrays.asList(R.drawable.option_1,R.drawable.option_2,...R.drawable.option_15);
view.findViewById(R.id.myIcon).setImageDrawable(ContextCompat.getDrawable(activity, ICON_LIST.get(index)));
万一您收到字符串形式的响应,您可以使用散列图存储键值或使用 switch case。
您可以创建一个 bindingAdapter
并对图像视图使用数据绑定,让适配器为您完成工作。有一个使用图像视图的好例子 in the docs here
像这样(我使用枚举作为您的响应类型)
@BindingAdapter("imageCustomDrawable")
fun setCustomDrawable(view: ImageView, responseType: EnumValue) {
val drawableResId = when(responseType) {
EnumValue.OK -> R.drawable.ok_drawable
...
}
view.setImageDrawable(ContextCompat.getDrawable(drawableResId))
}
您的图像视图 xml 将是
<ImageView
android:id="@+id/your_imageview"
app:imageCustomDrawable="@{YOUR_RESPONSE_HERE}"/>