Java Android.getDrawable()出错
我试图获取一个对给定imageView的可绘制图像集的引用,然后在单击该imageView时打印出一个吐司。但是,toast正在打印以下消息: “android.graphics.drawable。BitmapDrawable@6ed7c4" 我想将读数注册为“black_knight”,这是drawables文件夹中可绘制文件(black_knight.png)的名称 以下是Java:Java Android.getDrawable()出错,java,android,xml,Java,Android,Xml,我试图获取一个对给定imageView的可绘制图像集的引用,然后在单击该imageView时打印出一个吐司。但是,toast正在打印以下消息: “android.graphics.drawable。BitmapDrawable@6ed7c4" 我想将读数注册为“black_knight”,这是drawables文件夹中可绘制文件(black_knight.png)的名称 以下是Java: protected void onCreate(Bundle savedInstanceState) {
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"
/>
提前感谢。我不认为有任何直接方法可以获得可绘制图像的名称,除非您将图像名称与图像一起存储 在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()获取图像名称
在这里:
字符串片段3=s01.getDrawable().toString()
对Drawable调用toString()
方法将返回Drawable的字符串表示形式,而不是Drawable名称
在xml中使用setTag
方法添加图像名称,在代码中使用getTag
检索名称:
<ImageView
android:id="@+id/s01"
....
android:tag="black_knight"
android:src="@drawable/black_knight"
/>
什么?哦,不,先生,那是不!不谢谢,但是如果我使用这种方法,我希望能够在图像(棋盘上的棋子)移动时动态设置和删除标记。使用Java中的setTag是否可以实现这一点?@RU92Z:是的,您可以使用
s01.setTag(new\u image\u name)
动态设置图像名称。
<ImageView
android:id="@+id/s01"
....
android:tag="black_knight"
android:src="@drawable/black_knight"
/>
String Piece3 = s01.getTag().toString();