繁体   English   中英

Android ImageView 不显示图像?

[英]Android ImageView Is Not Displaying Image?

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

<?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>

就我而言,当我运行我的应用程序时,我的所有片段的 imageViews 都没有显示。 问题是,我从“ FragmentActivity ”扩展了我的“ Activity ”类。 所以我只是将它“ FragmentActivity ”更改为“ AppCompatActivity

也许这会对某人有所帮助。

在 ImageView 中有两个选项srcsrcCompact 尝试他们两个以找出哪个有效。

android:src="@drawable/slide_view_4"

app:srcCompat="@drawable/slide_view_4"

你把源图像文件放在哪里了? 是在 Drawable 文件夹下吗? 如果是,则为该图像创建mdpi、hdpi、xhdpi、xxhdpi图像源,并将它们放在mdpi、hdpi、xhdpi、xxhdpi文件夹中。

这是在检查布局 xml、主题等后对我有用的解决方案。只需将 java 类中的“扩展活动”更改为“扩展 AppCompatActivity”。

如果之前建议的一些解决方案对您有用,其他有相同问题的 ImageView 图像不显示也可以尝试这个。

我遇到了同样的问题,我通过扩展AppCompatActivity并将我的图像重命名为正确的标准来修复它。
我的图像名称(以前): splash-1 (没用)。
我尝试将图像名称重命名为splash1
之后一切正常。 注意:图像文件也可能导致此问题。

尝试android:background="@drawable/your_image"而不是app:srcCompat="@drawable/your_image"

检查以下内容:

  1. 您是否在 UI 线程上调用setContentView (用于启动屏幕)
  2. 启动画面后是否有其他活动(或视图)显示得太快(即取消启动画面setContentView )?
  3. 尝试在ImageView layout_heightlayout_width上使用 match_parent 而不是 wrap_content 。

Android ImageView 不显示图像?

这些解决方案都不适用于我。 我所做的是我在清单文件中添加了这些代码行

安卓:硬件加速=“假”

机器人:大堆=“真”

如果这些代码行没有解决您的问题,请尝试设置您的图像视图高度和宽度 不使用包装内容或匹配父级。 如果您的尺寸不起作用。 尝试减少数量并重试。 我认为这些解决方案很有帮助。

与这个问题无关,但仍然分享经验,有时我们将源设置为工具,然后我们期待结果(发生在我身上两次,每次需要 15 分钟才能解决)。

tools:srcCompat
//instead of 
android:srcCompat

工具的图像源仅在 android studio 中可见。

尝试在 XML 文件中使用app:srcCompat="@drawable/modified"而不是tools:srcCompat="@drawable/modified"

在我的情况下,从图像列表中选择图像时图像不可见。

重建项目为我修复了它。

构建 -> 重建项目

我有同样的问题。 我真的不敢相信它是多么简单。 虽然这对你来说可能不是问题,但这对我来说已经解决了。 我的图像文件名为 ss-logo.png。 Android Studio 不允许在图像文件中使用破折号。 一旦我将其更改为 ss_logo.png,它就可以完美运行。 仅在图像文件名中使用字母、数字和下划线。 希望这可以帮助。

请检查您的图像颜色...如果您使用白色背景并且如果您使用白色图像,则不会显示...尝试将图像的背景容器更改为其他颜色或更改图像颜色。 我真的面临这种情况并浪费了很多时间......我希望这会对某人有所帮助......

尝试检查图像的名称,例如:“img-icon-butterfly.png”这些类型的名称应该重命名,并且应该删除“-”,以便使用“imgbutterfly.png”之类的名称

尝试在布局文件中从ImageView更改为androidx.appcompat.widget.AppCompatImageView

100% 工作代码。 我的代码中显示了同样的问题。 但我使用 AppCompatImageView 然后显示我的图像

<androidx.appcompat.widget.AppCompatImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                app:srcCompat="@drawable/ic_calendar"
                />

你的可绘制文件是什么格式的? Android 更喜欢使用.PNG

空位图 = 不可用的图像。

这是实际使用图像的基础。 当在 android 中使用图像并对其进行分配时,它实际上会将图像转换为位图,并且取决于某些参数是大小和各种其他因素,它可能会失败,这将导致您的图像被转换并返回为 null 由于发生的一些故障。

不要自己创建可绘制文件夹。 在 android studio 中使用Image Asset选项重新创建它。

就我而言,问题在于可绘制文件夹本身。 我自己创建了可绘制文件夹。 这是不正确的。 在 android studio 中,我们应该使用 Image Asset 选项创建可绘制文件夹。 我没有得到原因,但现在问题已解决。

尝试使图像尺寸小一点,我猜android工作室不支持更高像素的图像。无论如何它解决了我的问题

我将 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。 大量免费在线转换器。

图像文件名也很重要。 确保在命名图像时没有空格。 改用“_”之类的

我面临着完全相同的问题。 我尝试重建,但没有帮助。 最后,我使用在线 PNG大小调整器将图像从其原始大小 2400x2400 调整为 1200x1200,然后使用在线压缩器将其从 590KB 压缩到 150KB 文件大小。

我面临着同样的问题。 经过一番工作,我发现如果我将图像放在可绘制的(anydpi)中,它在设计预览中呈现但不在真实设备上,这是一个问题。 因此,我将图像放在简单的可绘制文件夹而不是可绘制(anydpi)中。 这解决了我的问题。

如果您像我一样不熟悉 Android 开发,请阅读以下文档:

安卓官方文档

来自 LinkedIn Android Dev 的 Medium 文章

我已经做了几年的 iOS 开发,并决定涉足 Android 开发。 我发现大多数时候它完全与屏幕分辨率有关(mipmap 也不适用于前面提到的可绘制图像)。 这些答案都没有解决我的问题,我必须设置drawable-hdpidrawable-mdpidrawable-xhdpidrawable-xxhdpidrawable-xxxhdpi的标准分辨率目录。 这些是您的模拟器或设备在为设备设置搜索正确分辨率时将查看的所有目录。 如果你把你的图片单独放在drawable中,这可能会导致这些文件夹被设备忽略,并且当你得到一个不可见的高分辨率图像或由于内存错误导致应用程序崩溃时。 请务必检查图像的尺寸,并确保将其导入到正确的可绘制目录下,以确保设备相应地缩放图像。

我的解释是一个小的概述,但我强烈建议阅读这些文章。

还要查看您的 logcat 输出。 您可能会看到与此类似的图像:

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

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

尝试在 ImageView XML 文件中添加这一行

android:src="@drawable/splashscreen"
tools:srcCompat="@drawable/splashscreen"

我的问题是布局 alpha 设置为 0,这就是问题所在。 有时阿尔法是自己来的。 无论如何,即使没有提到,0 alpha 也是默认值。 所以尝试将 alpha 删除为0。0 alpha 是 = 不可见!!

在我的情况下,在图像视图的 xml 标记中用android:srcCompat替换tools:srcCompat解决了这个问题

通过使用第三方库(如 Jake Wharton 的 Picasso)解决了许多与图像相关的问题。 我在图像加载方面遇到了无法解释的问题,有时甚至出现内存不足错误。 图像编辑(使用 Gimp for Mac)尤其如此。 毕加索在处理内存和必要的缓存等方面做了艰苦的工作。

http://square.github.io/picasso/

如果您的图像由于某些布局错误而未显示在代码中,您可以使用tools:ignore="contentDescription"

使用工具:忽略=“内容描述”

在代码中使用这一行。

<?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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM