2011-01-10 183 views
5

我目前正在开发我的第一个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); 

一旦我的形象,我创建了一个油漆,设置一些平滑属性为true,然后画在画布上:

Paint smoothingPaint = new Paint(); 
smoothingPaint.setAntiAlias(true); 
smoothingPaint.setFilterBitmap(true); 
smoothingPaint.setDither(true); 
canvas.drawBitmap(holeImageBMP, 0, 0, smoothingPaint); 

然而,正如你可以明显看到上述,图像质量急剧下降。我看到很多图像被渲染得很漂亮,而且我真的不知道发生了什么,所以任何建议都会很棒!

其他说明:我正在使用SurfaceView方法来处理图形,与SDK中给出的LunarLander示例的性质类似。

再次感谢!

回答

0

如果不限制少得多的颜色比原来的画面有(确实有Android的256种色模式?),我建议禁用dithering,如果放大到你的图片,它也有明显的效果也许会破坏光滑的外观。

我觉得你的情况,通过破坏该抗锯齿需求平稳一脸其他颜色抖动抗锯齿推断。对照片进行快速颜色计数(左侧约850张,右侧约140张)证实了这一点。

+0

我已经尝试过了,它并没有真正的区别。我承认它存在的唯一原因是因为另一个stackoverflow.com线程中的某个人提出了这个问题:P我欣赏这个想法!真的有什么想法是有帮助的。 – 2011-01-10 19:20:18

+0

好的,我认为佩德罗的答案在这种情况下更有帮助。我还没有对Android做任何事情,所以我不知道有抖动/带状问题,只是给出了与图形相关的答案。 – schnaader 2011-01-10 19:24:04

1

这可能与将图像从一种格式转换为另一种格式有关。此外,android屏幕因设备而异。尝试使用其他设备,它可能会更好看...几乎肯定它会有不同的音调。

尝试读取这个问题(和条带和抖动)这篇大文章,并考虑调整你创建的图像为它在Android设备更好的工作:http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/

相关问题