图片没有显示全白,尽管它是正确的白(Image does not show completely w

2019-06-24 05:47发布

对于闪屏我用含有白色背景的图像(纯白色 - 在Photoshop中选中)。 出于某种原因,它显示了一个轻微的绿色BG与活动的默认的白色BG - 标示在屏幕。 只有在一些设备,如

我添加为在一帧布局到活动单一视图:

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

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scaleType="fitCenter"
    android:src="@drawable/splashscreen" />

</FrameLayout>

任何的想法? 我读到RGB888与RGB565问题,但无法找到一个妥善的解决办法。

注:我肯定会做出改变形象,以透明的白色,而是更愿意理解问题并找到一个妥善的解决办法。

Answer 1:

这实在是烦人。 我不知道,为什么这么少的人遇到过,因为它应该出现在所有32位显示此问题。

你提到说得对,RGB888格式。 这个问题的原因是,不管在APK原始位图格式的文件所有的位图被压缩(在我的情况到索引256色!WTF?)。

我找不到,以防止它的方式,因此,如果有人知道的妥善解决,请告知。

然而,我发现了白色的问题两个解决方案。

1) 每个位图:说,我们称为可绘制位图资源@drawable/mypng ,这会导致问题。 我们需要添加额外的XML绘制绘制/ mypng_nofilter.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/mypng"
    android:filter="false"
/>

并使用@drawable/mypng_nofilter代替。

2) 对于整个活动:在活动onCreate方法,我们需要添加

getWindow().setFormat(PixelFormat.RGB_565);

现在,窗口有16位色彩深度和所有位图显示“正常”白。

同样,我希望有32位色深,但我不知道如何控制编译时图像压缩。



Answer 2:

我已经改变了解决这个问题Bitmap.CompressFormat类型PNG而不是JPEG

Resources res = getResources();
Drawable drawable = res.getDrawable(R.drawable.nouv);
Bitmap bitmap = (Bitmap)((BitmapDrawable) drawable).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);


Answer 3:

我遇到了网络加载的图像同样的问题。 我通过禁用位图滤镜来解决这个问题。 由于我没有对ICS和较新的设备的问题,我关掉了位图过滤仅适用于ICS前的设备。 以下是我使用的代码(网络加载位图设置为ImageView的。)

BitmapDrawable bitmapDrawable = new BitmapDrawable(imageView.getContext().getResources(), bitmap);
bitmapDrawable.setFilterBitmap(false);
imageView.setImageDrawable(bitmapDrawable);


Answer 4:

当你的图像只有在它的中间有一个画面,我会建议你设置:

android:scaleType="centerCrop"

它会裁剪图片,在左边和右边的某一部分,而是将使用整个屏幕...



Answer 5:

您还可以定义一个背景,你的FrameLayout或使用图片的颜色你ImageView的(这似乎是F8FCF8):

机器人:背景= “#F8FCF8”



文章来源: Image does not show completely white despite it's correctly white