每次点击时随机将图像设置为 ImageButton
Setting Image to ImageButton randomly on every click
我正在尝试从图像制作按钮,我的想法是每次单击按钮都会更改图像,因此按钮的形状和外观也会发生变化。
E.g., every click gives a point, and every shape or
"image" is selected based on an algorithm I made for this purpose
我有这三个变量,其值在下面的代码中随机生成:
rand = new Random(System.currentTimeMillis());
x = rand.nextInt(3);
y = rand.nextInt(8);
z = rand.nextInt(10);
将生成的数字分配给字符串以使用此代码创建图像的下一个 id
:
String myID = "R.id.myImage_" + x + y + z;
我使用这个代码:
int resource = getResources().getIdentifier(myID, "drawable", "com.asgames.package");
但是,我仍然收到找不到图像的错误消息。
您可以使用以下代码执行此操作:
int resource = getResources().getIdentifier(myID, "drawable", "com.your.package");
PS: 去掉名字中的“R.id.
”
将您的图像重命名为 image1、image2、...、image150。
生成一个介于 1 到 150(包括两者)之间的随机数。
使用下面的代码获取图片资源id。 (如果您将图像放在 mipmap 文件夹中,请使用 "mipmap" 而不是 "drawable")
String myID = "image"+ generatedRandomNumber;
int resource = getResources().getIdentifier(myID, "drawable", "com.your.package");
使用此资源 ID 为 ImageButton
设置图像。
要为 android 中的 View
生成随机 ID,您可以使用 generateViewId()
,这是 View
class 中的一个方法在 Android 库中,文档说:
Generate a value suitable for use in setId(int). This value will not
collide with ID values generated at build time by aapt for R.id.
查看官方文档here。
现在您可以执行以下操作:
int imageCoordinates = x + y + z;
int imageId = View.generateViewId() + imageCoordinates;
我正在尝试从图像制作按钮,我的想法是每次单击按钮都会更改图像,因此按钮的形状和外观也会发生变化。
E.g., every click gives a point, and every shape or "image" is selected based on an algorithm I made for this purpose
我有这三个变量,其值在下面的代码中随机生成:
rand = new Random(System.currentTimeMillis());
x = rand.nextInt(3);
y = rand.nextInt(8);
z = rand.nextInt(10);
将生成的数字分配给字符串以使用此代码创建图像的下一个 id
:
String myID = "R.id.myImage_" + x + y + z;
我使用这个代码:
int resource = getResources().getIdentifier(myID, "drawable", "com.asgames.package");
但是,我仍然收到找不到图像的错误消息。
您可以使用以下代码执行此操作:
int resource = getResources().getIdentifier(myID, "drawable", "com.your.package");
PS: 去掉名字中的“R.id.
”
将您的图像重命名为 image1、image2、...、image150。
生成一个介于 1 到 150(包括两者)之间的随机数。
使用下面的代码获取图片资源id。 (如果您将图像放在 mipmap 文件夹中,请使用 "mipmap" 而不是 "drawable")
String myID = "image"+ generatedRandomNumber; int resource = getResources().getIdentifier(myID, "drawable", "com.your.package");
使用此资源 ID 为
ImageButton
设置图像。
要为 android 中的 View
生成随机 ID,您可以使用 generateViewId()
,这是 View
class 中的一个方法在 Android 库中,文档说:
Generate a value suitable for use in setId(int). This value will not collide with ID values generated at build time by aapt for R.id.
查看官方文档here。
现在您可以执行以下操作:
int imageCoordinates = x + y + z;
int imageId = View.generateViewId() + imageCoordinates;