在Android中呈现的图像上的锯齿状边缘

我目前正在开发我的第一个Android应用程序,并且在渲染图像时遇到了一些问题。图像本身的质量很高,但在渲染时质量会大幅降低。边缘变得锯齿状,看起来很糟糕。到目前为止,我所展示的每个人几乎都立即注意到它,没有任何提示。 [从左侧开始,在右侧结束:] http://i.stack.imgur.com/gld5A.png 我正在尝试我所知道的一切以及我通过在线浏览找到的每一个提示,但似乎没有什么能解决它。 目前,我将图像作为位图并进行缩放:
Bitmap holeImage = BitmapFactory.decodeResource(res, R.drawable.hole_image);
Bitmap holeImageBMP = Bitmap.createScaledBitmap(holeImage, width, height, true);
一旦我有了图像,我创建一个Paint,将一些平滑属性设置为true,然后在画布上绘制它:
Paint smoothingPaint = new Paint();
smoothingPaint.setAntiAlias(true);
smoothingPaint.setFilterBitmap(true);
smoothingPaint.setDither(true);
canvas.drawBitmap(holeImageBMP, 0, 0, smoothingPaint);
然而,正如您可以在上面看到的那样,图像质量急剧下降。我已经看到很多图像呈现得很漂亮,老实说我不确定发生了什么,所以任何建议都会很棒! 其他说明:我使用SurfaceView方法处理绘图,本质上类似于SDK中给出的LunarLander示例。 再次感谢!     
已邀请:
这可能与将图像从一种格式转换为另一种格式有关。此外,Android屏幕因设备而异。尝试使用其他设备,它可能看起来更好......几乎可以肯定它会有不同的音调。 尝试阅读这篇关于这个问题的伟大文章(以及条带和抖动),并考虑调整你为它创建的图像,以便在Android设备中更好地工作:http://www.curious-creature.org/2010/12/08/bitmap -quality显带和 - 抖动/     
如果你不局限于比原始图片少得多的颜色(Android有256色模式吗?),我建议禁用抖动,如果你放大你的图片,它确实有一个可见的效果可能会破坏一个光滑的样子。 我认为在你的情况下,抖动通过破坏消除锯齿所需的额外颜色以获得平滑外观来消除抗锯齿。图片上的快速颜色计数(左边一个约850,右边一个约140)证实了这一点。     

要回复问题请先登录注册