Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android.getDrawable()出错_Java_Android_Xml - Fatal编程技术网

Java Android.getDrawable()出错

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) {

我试图获取一个对给定imageView的可绘制图像集的引用,然后在单击该imageView时打印出一个吐司。但是,toast正在打印以下消息: “android.graphics.drawable。BitmapDrawable@6ed7c4"

我想将读数注册为“black_knight”,这是drawables文件夹中可绘制文件(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"
        />


提前感谢。

我不认为有任何直接方法可以获得可绘制图像的名称,除非您将图像名称与图像一起存储

在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();