Android 获取图像源Tag

发布时间: 2017/3/19 4:33:13
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想当我点击图像获取图像源。我有 android:tag 设置与 URI 。示例︰

android:tag="@drawable/black_rook"

我的代码中,我这样做︰

int imageId = (Integer) myImage.getTag();
newImage.setImageResource(imageId);

然而,我会说这错误︰

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

发生这种情况就行我将强制转换为 Integer 。怎么才能图像源或如何可以修复此错误吗?

解决方法 1:

你不能投 xml 作为字符串型转换为一个整数, getTag 方法实际上不会返回 drawable id,你想要做,但我看到你想要显示黑色的乌鸦。这让我想起了你正在棋 application 。国际象棋棋子应该是对象本身,被称为"白嘴鸦"。你可以在这个"白嘴鸦"对象 ImageView ,然后进行 getter 和 setter 方法此对象 ImageView 。然后,要得到 ImageView ,你可以简单地这样做︰

Rook blackRook = new Rook();
blackRook.getImageView();

只是一个想法,既然它不一个好的主意 (或一个实践) 来表示一整块作为 ImageView

更新︰

经过一番思考,如果你真的希望继续你正在做 (这你不应该) 的方式在这里是我称之为的"贫民窟"解决方案︰

你第一次发现 imageView 对象你想 tag 从︰

myImage = (ImageView) findViewById(R.id.myImageName);

然后将 Id 设置在这里,而不是在你 xml

myImage.setTag(R.drawable.black_rook);

然后简单你可以︰

int imageId = (Integer) myImage.getTag();
newImage.setImageResource(imageId);
赞助商