我试图获取对给定imageView的设置可绘制图像的引用,然后在单击该imageView时打印出一个toast。但是,toast打印出以下消息: " android.graphics.drawable.BitmapDrawable@6ed7c4"
我希望将读数注册为" black_knight",这是drawables文件夹中drawable(black_knight.png)的名称。
这是Java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.board);
final ImageView s01 = (ImageView) findViewById(R.id.s01);
s01.setClickable(true);
s01.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (s01.getDrawable() != (null)) {
String Piece3 = s01.getDrawable().toString();
Toast.makeText(getBaseContext(), Piece3, Toast.LENGTH_LONG).show();
}
}
});
}
和XML:
<ImageView
android:id="@+id/s01"
android:layout_width="0dp"
android:layout_height="40dp"
android:background="#AF9B60"
android:layout_weight="1"
android:src="@drawable/black_knight"
/>
提前致谢。
答案 0 :(得分:0)
我认为除非您将图像名称与图像一起存储,否则有任何直接的方式来获取可绘制图像的名称。
在XML中,您可以执行以下操作将图像名称设置为imageview的附加数据
android:tag="abc.png"
程序设置imagename
ImageView img = (ImageView) findViewByID(R.id.img)// my image img.settag("abc.png"); // to set an image name
您可以使用getTag()
获取图像名称String imageName = (String)img.getTag();
答案 1 :(得分:0)
这里:
String Piece3 = s01.getDrawable()。toString();
在Drawable上调用toString()
方法将返回drawable而不是drawable名称的字符串表示形式。
在xml中使用setTag
方法添加图片名称,在代码中使用getTag
来检索名称:
<ImageView
android:id="@+id/s01"
....
android:tag="black_knight"
android:src="@drawable/black_knight"
/>
在代码中使用getTag()
获取图片名称:
String Piece3 = s01.getTag().toString();