我剛剛在三星Galaxy 10.2上顯示了一個位圖。該圖像是在Photoshop中創建的,顯示從淺紅色到稍暗的紅色的一些細微變化,它在我的PC上看起來很完美,但平板電腦上的渲染顯示multiple bands。Android中的顏色深度
我知道這可能是由顏色深度不夠造成的......但我不知道android設備有什麼顏色深度。 Android甚至指定了最小顏色深度?是否可以在運行時或多或少地要求顏色深度?這是否取決於設備的製造商?
我剛剛在三星Galaxy 10.2上顯示了一個位圖。該圖像是在Photoshop中創建的,顯示從淺紅色到稍暗的紅色的一些細微變化,它在我的PC上看起來很完美,但平板電腦上的渲染顯示multiple bands。Android中的顏色深度
我知道這可能是由顏色深度不夠造成的......但我不知道android設備有什麼顏色深度。 Android甚至指定了最小顏色深度?是否可以在運行時或多或少地要求顏色深度?這是否取決於設備的製造商?
這是一個完美的閱讀:Bitmap quality, banding and dithering通過羅曼蓋伊。
回答您的問題:
的android是否甚至指定最小色深?
Android < 2.3默認加載16位顏色深度的位圖。 Android> = 2.3默認加載32位位圖。從給定的文章引用羅曼蓋伊:
更好的解決方案是簡單地使上32位 表面,其Android 2.3的現在默認完成32位的位圖。
位圖的最小值爲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
。
我們需要更多的上下文。你在做一個活動嗎?如果是這樣,請嘗試'getWindow()。setFormat(PixelFormat.RGBA_8888);'。 – tilpner
是的,在一項活動中。所以我認爲RGBA_8888是每像素32位......但所有Android設備都保證支持這一點? – Mick