您好我正在开发简单的Android应用程序。应用程序仅包含图像视图。在图像视图上,应该更改显示的单击图片。我的问题是如何通过索引获取资源或资源图像列表。例如在drawable中我有来自s1-s100的100个图像名称。我想用这样的随机函数显示其中一个:
private void ImageView_Click(object sender, EventArgs e)
{
Random r = new Random();
int index = r.Next() % 100;
//code where I get picture on "index place" from my drawable folder.
}
谢谢!
答案 0 :(得分:1)
取一个整数数组来存储所有drawable
LOAD_LIST_SUCCESS
然后计算随机索引并从该索引中选择drawable
int resIds = new int[]{R.drawable.s1, R.drawable.s2, .... R.drawable.s100};
答案 1 :(得分:1)
在值中创建任何arrays.xml文件,并将您的drawable添加到像这样的数组
中
<integer-array name="images">
<item>@drawable/drawable1</item>
<item>@drawable/drawable2</item>
<item>@drawable/drawable3</item>
</integer-array>
然后在您的活动类中添加此
TypedArray images = getResources().obtainTypedArray(R.array.images);
// get resource id by random index i
images.getResourceId(i, -1)
答案 2 :(得分:1)
我看到你已经接受了答案,但这是一种非常无聊的方式来实现你想要的东西,因为它需要开发人员用数百个项目来编写数组。实现它的一种更简单的方法是直接获取drawable的标识符。
我不确定Xamarin / C#会是怎样的,但是在Java上你会这样使用:
Random r = new Random();
int index = r.nextInt(100);
String name = "s" + index;
int drawableId = getResources().getIdentifier(
name, // the name of the resource
"drawable", // type of resource
getPackageName())); // your app package name
imageView.setImageResource(drawableId);
答案 3 :(得分:0)
这是最优雅的解决方案,@ Budius用Java来表示,这是C#:
private void ImageView_Click(object sender, EventArgs e)
{
Random r = new Random();
int index = r.Next() % 36;
String name = "s" + index;
int drawableId = Resources.GetIdentifier(
name, // the name of the resource
"drawable", // type of resource
"Us.Us"); // your app package name
imageView.SetImageResource(drawableId);
}
“Us.Us”是我的包裹名称。