Android ImageView没有显示任何内容

Android ImageView没有显示任何内容,android,android-imageview,android-bitmap,Android,Android Imageview,Android Bitmap,我有一个位图(1538 x 2000),并将其设置为ImageView的src,但当我运行应用程序时,没有显示任何内容(除了活动背景色),我阅读了有关位图尺寸限制的内容,但如果问题是限制,为什么我可以在同一设备上通过多媒体资料查看此位图 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools

我有一个
位图
(1538 x 2000),并将其设置为
ImageView
src
,但当我运行应用程序时,没有显示任何内容(除了活动背景色),我阅读了有关位图尺寸限制的内容,但如果问题是限制,为什么我可以在同一设备上通过多媒体资料查看此位图

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
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">

<ImageView
    android:id="@+id/iv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitCenter"
    android:adjustViewBounds="true"
    android:src="@drawable/pic3"/>

 </FrameLayout>


任何帮助都将不胜感激

android中的图像大小有限制。通常是2048(最大维度),但您可以通过以下方法获取设备的特定值:
Canvas.getMaximumBitmapWidth(),Canvas.getMaximumBitmapHeight()


你的图像大小看起来还可以,但可能是在一个错误的可绘制文件夹中(正因为如此,android才以更高的分辨率读取)。您可以将图像放到
可绘制的nodpi
(更多信息:)文件夹中,以确保它不会放大/缩小,但我个人认为最好使用较低的分辨率,可能是在多个文件夹中(或向量资产,如果图像在SVG中可用)

android中对图像大小有限制。通常是2048(最大维度),但您可以通过以下方法获取设备的特定值:
Canvas.getMaximumBitmapWidth(),Canvas.getMaximumBitmapHeight()

你的图像大小看起来还可以,但可能是在一个错误的可绘制文件夹中(正因为如此,android才以更高的分辨率读取)。您可以将图像放在
可绘制的nodpi
(更多信息:)文件夹中,以确保它不会被放大/缩小,但我个人认为最好使用较低的分辨率,可能在多个文件夹中(或向量资源,如果图像在SVG中可用)

您可以尝试此方法

将图像放入“资源”文件夹中

src->main->assets
如果文件夹不存在,请创建它

将图像放在那里之后,在java中使用此代码(以编程方式设置图像)

确保在使用图像名称时也添加了扩展名。例如:background.jpg或background.png

这应该有用。

你可以试试这个

将图像放入“资源”文件夹中

src->main->assets
如果文件夹不存在,请创建它

将图像放在那里之后,在java中使用此代码(以编程方式设置图像)

确保在使用图像名称时也添加了扩展名。例如:background.jpg或background.png


这应该是可行的。

好吧,我认为问题在于我滥用了
可绘制的
文件夹,而没有考虑android的行为,我将图像放在
可绘制的
文件夹中,android认为它适合
mdpi
设备

我的logcat之前曾指出:

OpenGLRenderer: Bitmap too large to be uploaded into a texture (2307x3000, max=2048x2048)
正如您所见,原始尺寸为(1538x2000),logcat报告为(2307x3000),这意味着android会将我的图像缩放(1.5倍)以适合我的
hdpi
设备,当我使用@prakar-斯佳丽speedstr说的资产加载时,它的工作方式与我预期的一样,没有android的干扰

此外,我尝试了更多,并将图像放入
可绘制hdpi
中,它在没有任何缩放的情况下运行良好


谢谢你的回答和评论。

好吧,我想问题是我滥用了
可绘制的
文件夹,没有考虑android的行为,我把图像放在
可绘制的
文件夹中,android认为它适合
mdpi
设备

我的logcat之前曾指出:

OpenGLRenderer: Bitmap too large to be uploaded into a texture (2307x3000, max=2048x2048)
正如您所见,原始尺寸为(1538x2000),logcat报告为(2307x3000),这意味着android会将我的图像缩放(1.5倍)以适合我的
hdpi
设备,当我使用@prakar-斯佳丽speedstr说的资产加载时,它的工作方式与我预期的一样,没有android的干扰

此外,我尝试了更多,并将图像放入
可绘制hdpi
中,它在没有任何缩放的情况下运行良好


感谢您的帮助性回答和评论。

您能发布您的xml布局吗?尝试用于大图像我认为您获得了BitmapOutofMemory异常,请缩小位图并在imageview中使用。这是图像大小的问题。Gallery必须以某种方式处理此问题以便快速响应,@SilvansSolanki没有发生异常,应用程序运行只是图像视图看起来是空的!你能发布你的xml布局吗?试着用在大图像上我认为你得到了BitmapOutofMemory异常,缩小你的位图并在imageview中使用。这是图像大小的问题。Gallery必须以某种方式处理此问题以便快速响应,@SilvansSolanki没有发生异常,应用程序运行只是图像视图看起来是空的!tnx@Shree,它成功了,但我想知道为什么它会放大我的位图,而现在它的大小与原始版本完全一样is@Farshad老实说,我也不清楚这一点,但我面对这个问题与大图像。在具有高ram和处理器的设备中,它工作正常,但在其他设备中,它要么空白,要么应用程序崩溃。当我以编程的方式进行时,它起作用了。我试着读这篇文章,不太明白。。。但这与缓存内存的分配有关。考虑到logcat消息,android将图像缩放了1.5倍,我不知道为什么,图像位于drawable文件夹中!但当我将其作为资产加载时,结果维度是我所期望的。tnx@Shree,它工作了,但我想知道为什么它会放大我的位图,而现在它的大小与原始版本完全相同is@Farshad老实说,我也不清楚这一点,但我面对这个问题与大图像。在具有高ram和处理器的设备中,它工作正常,但在其他设备中,它要么空白,要么应用程序崩溃。当我以编程的方式进行时,它起作用了。我试着读这篇文章,不太明白。。。但这与缓存内存的分配有关。考虑到logcat消息,android将图像缩放了1.5倍,我不知道为什么,图像位于drawable文件夹中!但当我将其作为资产加载时,结果维度就是我所期望的。