如何从drawable文件夹中显示PNG图片?

4

我一直在尝试在我的活动中显示PNG文件,但是没有成功。

我有一个名为arrow.png的文件在我的res/drawable文件夹中,我的代码如下:

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Main" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/arrow" />

</RelativeLayout>

Java:

public class Main extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imgView = (ImageView) findViewById(R.id.image);
        imgView.setImageResource(R.drawable.arrow);
    }
}

在我阅读的所有指南和示例中,它们都给了我与上面创建的相同的指令。但是当我运行这个程序时,没有任何东西显示出来(TextView 显示正常 - 图像不存在)。我对此感到非常困惑,因为没有错误消息。
我已经检查过 PNG 文件是否损坏,但也不是这种情况。我已经清理了项目并重新启动,但这仍然没有帮助。我缺少了什么/忽略了什么?

1
你所使用的显示PNG的方法是正确的...我认为你的PNG文件存在一些问题...你能否展示一下这个PNG文件或者尝试使用同样的代码来显示其他的PNG文件。 - Navjot
可能是图像尺寸太大了吗?如果可用空间小于图像大小,不确定会发生什么。尝试移除RelativeLayout的填充看看是否有任何变化。或者文件大小过大,导致内存溢出,有时候也会只显示部分图像。此外,在IDE的XML图形布局视图中是否能看到图像?因为你也将其放置在android:src中,所以应该也会显示在那里。 - Ivo
谢谢Navjot Bedi和@IvoBeckers,你们的建议非常中肯。我在Photoshop中制作了PNG文件,然后忘记调整大小。我将其重新调整为原始大小的12.5%,现在它显示得很好。如果您将您的评论写成答案,我会接受它。感谢您发现我忽略的问题! - user2323030
2个回答

4

你的图片可能太大了。


1
你能提供一个解决方案吗? - Beanow

0

您可以创建一个新的可绘制资源文件夹,并以高密度格式存储。

右键单击res->新建->Android资源目录

enter image description here

您可以根据您的图像质量选择密度。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接