Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Nexus5(Android 6.0)中未显示imageView_Java_Android_Nexus 5 - Fatal编程技术网

Java Nexus5(Android 6.0)中未显示imageView

Java Nexus5(Android 6.0)中未显示imageView,java,android,nexus-5,Java,Android,Nexus 5,我在RelativeLayout中有一个ImageView: <ImageView android:id="@+id/image" android:src="@drawable/image1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true"

我在RelativeLayout中有一个ImageView:

    <ImageView
        android:id="@+id/image"
        android:src="@drawable/image1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

它适用于许多设备(手机和平板电脑)和模拟器,但不适用于搭载安卓6的谷歌Nexus5。应用程序工作正常,但不显示ImageView背景


(图像位于drawable文件夹中,我使用setImageResource更改图像)

我能够在API23上加载imageView


我在Nexus5和6.0上也面临着稍微不同的图像视图问题。这就像,当我到达页面时,图像出现了(有自定义键盘),但如果我点击设备后退按钮,图像视图就隐藏了(隐藏自定义键盘)

所以我所做的是,我从布局中删除了android:adjustViewBounds=“true,对我来说它工作得很好。如果你愿意,你也可以删除scaletype。
我仍然不知道为什么会这样。我在等待合适的解决方案。

我也遇到了同样的问题,我的图像显示在所有android版本的android 6.0中。 我在安卓5.0和安卓6.0中测试我的应用程序,该时间图像在安卓5.0中正确显示,但在安卓6.0中,图像不会加载到Imageview中

我使用了src和background这两个属性,但在android 6.0的Imageview中没有获得图像

然后,为了解决这个问题,我检查了我的logcat,并在logcat中找到了下面的字符串

W/OpenGLRenderer:位图太大,无法上载到纹理(3240x5760,最大值=4096x4096)

我搜索了这个字符串并得到了解决方案,这是因为Android 6.0不允许在UI线程中执行繁重的过程。如果您的图像大小和分辨率较小,则可以使用src或background加载它。但是您的图像太重,则Android 6.0会在UI线程中跳过此过程

但是,您可以使用以下解决方案来解决此问题

解决方案1

通过使用第三方库解决此问题,如重载图像。 我用这个解决了它

解决方案2

res
中添加一个
drawable nodpi
文件夹,将图像放入其中,只需将其与src in Imageview标记一起使用即可


将图像移动到可绘制的nodpi,而不是可绘制的nodpi

基本上,如果你把一个图像放在drawable文件夹中,它将被视为drawable mdpi,所以android将调整大小以适应xxhdpi,即nexus 5,
由于位图变大,无法显示

当图像无法在某些Mi、Vaio设备上显示时,我遇到了类似的问题。我将其缩小为图像分辨率对于这些特定设备来说过高的问题。因此,我仅在ima上打开图像时,才使用图像加载程序库降低图像的分辨率ge view(否则原始尺寸保存在SD卡中)使用以下代码

Glide.with(context).load(imagePath).override(1280,720).fitCenter().into(imageView);
图像有各种形状和大小。在许多情况下,它们更大 而不是典型应用程序用户界面(UI)所需的。对于 例如,system Gallery应用程序显示使用 Android设备的摄像头通常要高得多 分辨率高于设备的屏幕密度

如果您使用的是有限的内存,理想情况下,您只希望在内存中加载较低分辨率的版本。较低分辨率的版本应与显示它的UI组件的大小相匹配。较高分辨率的图像不会带来任何明显的好处,但仍会占用宝贵的内存并带来额外的性能额外的动态缩放导致的开销

显示任意图像,例如图标。ImageView类可以 从各种来源(如资源或内容)加载图像 供应商),负责从图像计算其测量值,因此 它可以在任何布局管理器中使用,并提供各种 显示选项,例如缩放和着色

  • 删除android:adjustViewBounds=“true”

  • 使用面向小尺寸(分辨率)的图像

  • 忠告 您可以使用公共void setImageResource(int resId)

    将可绘制对象设置为此ImageView的内容

    这在UI线程上执行位图读取和解码,可以 引起潜伏期呃逆。如果需要考虑的话,考虑使用。 setImageDrawable(android.graphics.drawable.drawable)或 改为设置ImageBitmap(android.graphics.Bitmap)和BitmapFactory

    阅读

    声明要用于的不同布局和位图的步骤 在不同的屏幕中,必须将这些替代资源放置在 单独的目录/文件夹

    这意味着,如果为xhdpi设备生成200x200映像,则 应为hdpi生成150x150的相同资源,为hdpi生成100x100的相同资源 mdpi和75x75用于ldpi设备


    请,您可以使用setImageResource进行探测吗?抱歉,在emulator上它可以工作,但在朋友的Nexus 5上不工作:-[setImageResource正在工作。哦,也许你可以尝试clean project并重新安装,或者从apkI安装。我已经尝试了所有方法,这是一个复杂的应用程序,在映像中失败。难以置信。clean,新的模拟器,另一台计算机,从apk安装,等等。你可以尝试加载其他映像,看看它是否工作吗?Glide是完美的!
        ImageView imageView = (ImageView) findViewById(R.id.image);
        imageView.setImageResource(R.drawable.image1);