在我的 \drawable-mdpi
文件夹中,我有一个名为:test.jpg
的图像
在我的 main.xml
文件中,在我的 LinearLayout 部分,我有:
<ImageView
android:id="@+id/test_image"
android:src="@drawable/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
在我的 src 文件夹中,我只有 1 个文件,HelloAndroidActivity.java
,只有以下方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView image = new ImageView(this);
image = (ImageView) findViewById(R.id.test_image);
setContentView(image);
}
这似乎是正确的,但每当我尝试运行它时,我都会收到 The application HelloAndroid (process xxxxx) has stoppended unexpectedly。请重试。
奇怪的是以前可以显示图片,现在不显示了,不知道为什么。
此外,当我注释掉 ImageDisplay 代码并将其替换为 TextDisplay 代码时。即
TextView tv = new TextView(this);
tv.setText("Does this work?");
setContentView(tv);
它确实显示文本。
编辑: 被要求发布 logcat。 Link to pastebin .
最佳答案
这听起来很刺耳,但这是当我把刀从你手中拿走并说你应该多读书或做其他事情的时候:
setContentView(R.layout.main);
ImageView image = new ImageView(this);
image = (ImageView) findViewById(R.id.test_image);
setContentView(image);
您已将内容 View 设置为 xml 布局。这很酷。然后您在代码中创建一个新的 ImageView 实例,这没问题,但可能有点超出您刚才的技能水平。
然后,您可以使用从 Android 从您的原始 setContentView 调用中为您扩充的布局中提取的布局覆盖刚刚创建的 ImageView。这是没有意义的。就这样做吧。
setContentView(R.layout.main);
ImageView image = (ImageView) findViewById(R.id.test_image);
最后,您使用从当前 Activity 的内容 View 中提取的图像引用覆盖整个 Activity 的内容 View 。不要这样做。这个不成立。我的猜测是您的异常是您正在重置内容 View ,或者您正在尝试使用另一个 View 中已存在的 View 来设置内容 View 。
您是否尝试动态设置显示的图像?如果不是,如果您只是想“显示”图像,请执行此操作。
setContentView(R.layout.main);
就是这样。
关于java - 无法在 Android 上使用 Imageview 显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206250/