我刚刚在三星Galaxy 10.2上显示了一个位图。图像是在photoshop中创建的,显示从浅红色到略深的红色的微妙变化,它在我的电脑上看起来很完美,但平板电脑上的渲染显示multiple bands。
我知道这可能是由于颜色深度不足造成的......但我不知道Android设备的颜色深度。 android甚至指定了最小颜色深度?颜色深度是否可以在运行时或多或少地请求?是否仅仅取决于设备的制造商?
答案 0 :(得分:9)
这是一个完美的阅读:Romain Guy的Bitmap quality, banding and dithering。
回答你的问题:
android甚至指定了最小颜色深度?
Android< 2.3默认情况下,加载16位颜色深度的位图。 Android> = 2.3默认情况下加载32位的位图。引用Romain Guy来自给定的文章:
更好的解决方案是简单地在32位上呈现32位位图 表面,Android 2.3现在默认使用。
位图的最小值是8位,Bitmap.Config.ALPHA_8
,但是99%你不应该使用它,而是使用Bitmap.Config.ARGB_8888
。
将Window
设置为32位(Bitmap.Config.ARGB_8888
)并使用32位(PixelFormat.RGBA_8888
)解码位图。怎么做,下面。
您可以或多或少地要求颜色深度 运行?是否仅仅取决于设备的制造商?
您可以在运行时随时设置Window
或Bitmap
的颜色深度。
Window
setFormat()
和PixelFormat
。 Bitmap
与PixelFormat
。