Android绘制的位图质量低于原始图像

Android绘制的位图质量低于原始图像,android,image,Android,Image,我有一个图像,这是打算作为一个背景图像,这填补了整个屏幕。我遇到的问题是,手机上显示的图像质量比原始图像差得多。我已将图像保存为320x480 jpg图像,因为我的手机的显示分辨率也是320x480,因此它与图像的重新调整大小无关 这是我看到的一张照片。左边是在我的桌面上打开的图像,右边是从我的android手机上截取的屏幕截图 手机上的图像质量可以通过添加抖动来改善,但仍然不理想。我很难理解到底发生了什么。看起来图像的保真度降低了。这就好像图像是以RGB_565格式绘制的,即使手机支持16m

我有一个图像,这是打算作为一个背景图像,这填补了整个屏幕。我遇到的问题是,手机上显示的图像质量比原始图像差得多。我已将图像保存为320x480 jpg图像,因为我的手机的显示分辨率也是320x480,因此它与图像的重新调整大小无关

这是我看到的一张照片。左边是在我的桌面上打开的图像,右边是从我的android手机上截取的屏幕截图


手机上的图像质量可以通过添加抖动来改善,但仍然不理想。我很难理解到底发生了什么。看起来图像的保真度降低了。这就好像图像是以RGB_565格式绘制的,即使手机支持16m颜色,并且应该能够精细地显示图像

哪个目录包含您的图像

你应该小心密度。 例如,如果屏幕的密度较低,并且将图像放入可绘制mdpi,则即使其大小与屏幕大小完全相同,图像也会模糊


尝试将图像放入可绘制的nodpi。

这可能是jpg压缩的结果,这是有损的,这意味着每次将图像保存为jpg时都会丢失质量,请尝试使用png代替。

很多人都使用渐变。请尝试将此内容放在您的活动中:

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    Window window = getWindow();
    window.setFormat(PixelFormat.RGBA_8888);
}

我把它放在
/drawable
中,我试着在不同的文件夹中移动它,在
-nodpi
中,但仍然没有改变图像查看器在桌面上显示的图像?你的电话是什么?许多设备只能显示262144种颜色,而不是1600万。Ace有16m,但只有165 PPI的屏幕密度,这可能是我不理解的原因,480x320是像素数。这不会改变,也不会受屏幕密度的影响?PPI是屏幕大小与像素的比率,每英寸像素数。iPhone1、2和3是480x320,PPI为163,HTC dream是480x320,PPI为180。感谢您的输入。我试过JPG,PNG,BMP各种各样的。还是一样的问题嗯,我试过了,但似乎不起作用。谢谢,不过我觉得这个答案已经足够接近了。我通过在我的
SurfaceView
类中的
onSurfaceChanged(SurfaceHolder holder)
方法中添加
holder.setFormat(PixelFormat.RGBA_8888)
来解决这个问题。我也许应该提到我是用surfaceView来画我的图像的。据我所知,默认行为是在RGBA_8888模式下加载/修改位图。但是,默认情况下,它们最终以16位颜色深度而不是24位颜色深度绘制到屏幕上。即使设备支持24位颜色。奇怪。在我的SurfaceView上绘制位图时,我遇到了类似的问题。调整图像大小时,质量会下降,如果我使用canvas.scale调整大小,或在canvas.drawbitmap方法中使用目标矩形,则会发生这种情况。我尝试使用此holder.setFormat(PixelFormat.RGBA_8888)到onSurfaceChange(SurfaceHolder holder)方法,然而,这只会让我的应用程序崩溃。有什么想法吗?好的,我在使用Bitmap.createScaledBitmap时发现,如果布尔参数设置为true,则质量下降不存在