似乎当我尝试在ImageView中设置图像的ID时,我收到错误
imageView1 = (ImageView) findViewById(R.id.image1);
*“R.id.image1”错误
当我查看R.java时,我放入res的图像名称是可绘制的类而不是id类。
public static final class drawable {
public static final int image1=0x7f020011;
public static final int image2=0x7f020012;
public static final int image3=0x7f020013;
public static final int ic_launcher=0x7f020017;
}
public static final class id {
public static final int button1=0x7f080002;
public static final int button2=0x7f080003;
public static final int button3=0x7f080004;
public static final int button4=0x7f080005;
public static final int imageView1=0x7f080001;
}
但是当我把“R.drawable.image1”它看起来工作正常但是R.id是必要的,以避免任何未来的错误。什么似乎是问题?我该如何解决?我似乎无法找到任何相关的帖子。
答案 0 :(得分:1)
您正在调用findViewById()
,它会在View层次结构中搜索具有您提供的ID的View对象。
您在image1
中尝试查找的R
ID实际上是可绘制的ID。您无法通过其可绘制的ID搜索视图 - 您只能通过该视图的ID搜索视图。
根据R
中的其他ID,您真正想要做的就是致电findViewById(R.id.imageView1);
。
R.drawable.image1
可用于引用drawable,例如,如果要将View的背景设置为可绘制的。
R.id.imageView1
可用于在布局中引用ImageView。
答案 1 :(得分:0)
将其添加为可绘制
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView1.setResourceDrawable(R.drawable.image1);