java - 无法在 Android 上使用 Imageview 显示图像

标签 java android eclipse imageview

在我的 \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/

相关文章:

java - 在 Lucee 上安装 Cassandra Java 驱动程序

Java:如何在运行时使用可变参数正确构造正则表达式

按钮旁边的 Android 小计数器

java - 是否可以在 Android WebKit 浏览器中运行 Java 小程序?

java - 尽管使用了正确的 Java 版本,但仍不受支持的主要版本和次要版本

java - JUnit 不运行

java - 如何设置 JavaFX TextField 的样式使其看起来像 iOS 的一样?

java - Spring/Hibernate 响应中的属性为空

java - 使用proGuard时如何保持java.lang.reflect

Eclipse 中的 Java Spring 检查