gpt4 book ai didi

java - 如何从imageView获取drawable名称

转载 作者:行者123 更新时间:2023-12-02 12:06:41 25 4
gpt4 key购买 nike

我有一个应用程序,可以在 Activity 打开时创建随机图像。随机图像阵列中有大约 30 个图像。图像已生成,但我想要的是将可绘制名称写入 TextView 。它看起来像这样:

    ImageView RImage= (ImageView) findViewById(R.id.image);
RImage.setImageResource(generator());

Drawable myDrawable = RImage.getDrawable();

TextView writeID = (TextView) findViewById(R.id.idtext);
writeID.setText(String.valueOf(generator()));
}

private int generator() {
TypedArray imgs = getResources().obtainTypedArray(R.array.list3);
int imgid = imgs.getResourceId(new Random().nextInt(imgs.length()), -1);
imgs.recycle();
return imgid;
}

目前我收到数字,但我不知道如何将 int 转换为字符串,或者如何使用生成器生成字符串,显示在 TextView 中,然后将其转换为 int 以显示在 ImageView 。

我创建了另一个 Activity ,我可以在其中从微调器中选择我想要查看的图像,它只需在按下按钮时将带有字符串的选定选项发送到下一个 Activity ,并在另一个 Activity 中删除 .png 和 res/drawable/中的字符串,并将字符串转换为 int 以显示图像。

   Bundle extras = getIntent().getExtras();
String transportItemChosen = extras.getString("SpinnerValue");
transportItemChosen = transportItemChosen.replace(".png", "");
transportItemChosen = transportItemChosen.replace("res/drawable/", "");

String uri = ("@drawable/" + transportItemChosen);
int id = getResources().getIdentifier(uri, null, getPackageName());

ImageView mImageView;
mImageView = (ImageView) findViewById(R.id.selectedimage);
mImageView.setImageResource(id);

所以我需要生成器生成字符串,然后将其转换为int。谢谢!

最佳答案

通过使用方法将 int id 转换为 String 名称来更改代码

getResourceEntryName(int id);

更改线路:

writeID.setText(String.valueOf(generator()));

类似:

writeID.setText(getResources().getResourceEntryName(generator()));

反之亦然:

如果您有一个String,我们假设您从textView获取这个String,或者使用上面的方法将其转换回int > 如果您执行以下操作:

int id= getResources().getIdentifier("your_string_here", "drawable", getPackageName());

如果您从 Fragment 而不是 Activity 调用代码,请记住在调用 getResources( )或在调用getPackageName()之前。我在输入时尚未测试代码,但我确信它会起作用(可能是拼写错误)。有关更多信息,请考虑访问资源文档 from this official link .

关于java - 如何从imageView获取drawable名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com