C# 从资源中提取随机图像
嗨,我正在开发简单的android应用程序。应用程序仅包含一个图像视图。在“图像视图”上,单击“显示的图片应更改”。我的问题是如何通过索引获得资源列表或资源图像。例如,在drawable中,我有100个来自s1-s100的图像名称。我想用如下的随机函数显示其中一个:C# 从资源中提取随机图像,c#,android,xamarin,C#,Android,Xamarin,嗨,我正在开发简单的android应用程序。应用程序仅包含一个图像视图。在“图像视图”上,单击“显示的图片应更改”。我的问题是如何通过索引获得资源列表或资源图像。例如,在drawable中,我有100个来自s1-s100的图像名称。我想用如下的随机函数显示其中一个: private void ImageView_Click(object sender, EventArgs e) { Random r = new Random();
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.
}
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);
谢谢 使用一个整数数组来存储所有可绘图项
int resIds = new int[]{R.drawable.s1, R.drawable.s2, .... R.drawable.s100};
然后计算随机指数,并从该指数中选取可提取指数
Random r = new Random();
int index = r.Next(resIds.length -1);
imageView.setImageResource(resIds[index]);
在values中创建任意arrays.xml文件,并将您的可绘图项添加到如下数组中
我知道你已经接受了答案,但这是一种非常无聊的方式来实现你想要的,因为它需要开发人员编写包含所有数百项的数组。实现它的一种更简单的方法是直接获取可绘制对象的标识符 我不确定Xamarin/C会是什么样子,但在Java上,您可以这样使用:
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.
}
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);
这是最优雅的解决方案,@Budius用Java给出,这是C#: “Us.Us”是我的包裹名
我必须添加using语句才能访问R吗?您为什么接受这个答案?谁想制作这样一个整数数组?“Budius”的答案就是你要找的地方。最好的答案甚至还没有发布,因为你可以简单地列出可绘制文件夹的内容。它看起来像我的答案。只是说我的道歉。我想念你。谢谢
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);
}