我在android中编写了一个程序。在其中我将所有图像添加到drawable文件夹中,例如dress_1.png,dress_2。但是图像名称dress_1被添加到字符串数组资源中。现在我不知道如何从这个字符串数组资源中检索图像并将其设置为imageview中的背景。我提到了以下代码。请帮我完成任务。我真的会嘲笑你。提前谢谢你。 简介:如何从数组字符串中检索字符串值到java以及如何使用android中可绘制文件夹中检索到的字符串图像 xml文件(小代码)
<ImageView
android:id="@+id/T1C4R1"
android:layout_width="0dp"
android:layout_height="35dp"
android:layout_weight=".45"
android:background="@drawable/rszjumper"
android:contentDescription="@string/desc" />
SecondActivity.java
for (int c = 0; c < conditions.length; c++) {
weatherCondition(conditions[c]);
}
private void weatherCondition(int c) {
switch(c){
case 5:
String dress_array[] = getResources().getStringArray(R.array.five);
weatherDress(dress_array);
}
}
private void weatherDress(String[] dress_array) {
for(int d =0; d < dress_array.length; d++ ){
String img = "drawable/" + dress_array[d];
T1C4R1.setBackground(img);
//img.setImageResource(getResources().getIdentifier(image_string[1] , "drawable", getPackageName()));
}
}
string.xml
<!-- condtion 5 -->
<string-array name="five" >
<item name="dress_2">dress_2</item>
<item name="dress_8">dress_8</item>
<item name="dress_6">dress_6</item>
</string-array>
答案 0 :(得分:1)
通常,您会根据其资源ID(例如R.drawable.dress_1
)查找drawable。如果您是根据字符串查找它们,则需要首先根据名称查找资源ID。
public Drawable getDrawableByName(Context context, String name)
Resources resources = context.getResources();
final int resourceId = resources.getIdentifier(name, "drawable",
context.getPackageName());
return resources.getDrawable(resourceId);
}
T1C4R1.setImageDrawable(getDrawableByName(getContext(), "dress_2"));
或者,您只需返回资源ID并使用setImageResource
根据其ID分配drawable。
您还应该注意,您当前的结构只会显示数组中的最后一个图像,因为您在循环中每次传递都会覆盖可绘制图像。