Android ImageView无法显示图片?

39

有人能告诉我为什么以下代码不起作用吗? 图像根本没有出现。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"

   <ImageView
          android:src="@drawable/splashscreen"
          android:scaleType="center"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

</RelativeLayout>

1
RelativeLayout没有方向..... - Rishabh Srivastava
4
如果你在 Android Api 21 或更低版本中运行应用程序,那么这是一个常见的问题。主要原因是你使用了高分辨率、大尺寸的图片。我建议你缩小图片大小,调整尺寸。 - Amiraslan
1
对我有用,谢谢! - 68060
32个回答

0

尝试将图像大小稍微缩小一些,我猜测Android Studio不支持更高分辨率的图像。总之,这解决了我的问题。


0

图片文件名也很重要。确保在命名图像时没有空格。使用"_"或其他字符代替。


0

我的问题是布局的alpha值被设置为0,这就是出错的原因。 有时alpha会自己出现。 无论如何,即使没有提到,0 alpha也是默认值。 所以尝试将alpha作为0删除。 0 alpha = 不可见!!


默认情况下,alpha应该为1(不透明),您确定吗? - rahul.taicho
有时候 alpha 自己来了。这是什么意思? - Eric Aya

0
不要自己创建drawable文件夹。在Android Studio中使用Image Asset选项重新创建它。
在我的情况下,问题出在drawable文件夹本身。我自己创建了drawable文件夹,这是不正确的。在Android Studio中,我们应该使用Image Asset选项创建drawable文件夹。我不知道原因,但现在问题已经解决了。

0
如果你和我一样是新手,正在学习Android开发,请务必阅读以下文档:

Android官方文档

来自领英Android开发者的Medium文章

我已经从事iOS开发多年,决定扩展到Android开发。我发现大部分时间都与屏幕分辨率有关(同时mipmap并不适用于之前提到的可绘制图像)。这些答案都没有解决我的问题,我必须设置标准分辨率目录:drawable-hdpidrawable-mdpidrawable-xhdpidrawable-xxhdpidrawable-xxxhdpi。这些是您的模拟器或设备在搜索设备设置的正确分辨率时将查看的所有目录。如果您将图像放在单独的drawable中,这可能会导致设备忽略这些文件夹,这就是高分辨率图像不可见或由于内存错误而使应用程序崩溃的原因。请确保检查您的图像尺寸,并确保在正确的可绘制目录下导入它,以确保设备相应地缩放图像。
我的解释只是一个简要概述,但我强烈建议阅读这些文章。

0
在我的情况下,将图像视图的xml标签中的tools:srcCompat替换为android:srcCompat解决了问题。

0
我将一个PNG图像复制/粘贴到了Drawable文件夹中,并在XML文件中设置了所有信息和参数。图片在预览中显示,但实际设备/模拟器上没有显示。
因此,在Java Activity中,我通过编程方式进行了调用:
  ImageView imview = (ImageView) findViewById(R.id.IdFromXML);
    imview.setImageResource(0);
Drawable draw = getResources().getDrawable(R.drawable.NameOfTheFileInFolder);
draw = (draw);
imview.setImageDrawable(draw);

搞定了!

如果需要,将图像转换为PNG格式。有很多免费的在线转换工具。


0
尝试在 ImageView 的 XML 文件中添加这一行。
android:src="@drawable/splashscreen"
tools:srcCompat="@drawable/splashscreen"

0

同时查看您的logcat输出。 您可能会看到类似于此图像的图像:

OpenGLRenderer 0x0000644a:0 Bitmap too large to be uploaded into a texture (4203x2277, max=4096x4096)

如果是这种情况,减小图片尺寸。


-1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

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