2014-01-10 111 views
4

我剛剛在三星Galaxy 10.2上顯示了一個位圖。該圖像是在Photoshop中創建的,顯示從淺紅色到稍暗的紅色的一些細微變化,它在我的PC上看起來很完美,但平板電腦上的渲染顯示multiple bandsAndroid中的顏色深度

我知道這可能是由顏色深度不夠造成的......但我不知道android設備有什麼顏色深度。 Android甚至指定了最小顏色深度?是否可以在運行時或多或少地要求顏色深度?這是否取決於設備的製造商?

enter image description here

+0

我們需要更多的上下文。你在做一個活動嗎?如果是這樣,請嘗試'getWindow()。setFormat(PixelFormat.RGBA_8888);'。 – tilpner

+0

是的,在一項活動中。所以我認爲RGBA_8888是每像素32位......但所有Android設備都保證支持這一點? – Mick

回答

9

這是一個完美的閱讀: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)解碼您的位圖。如何做到這一點,下面。

您可以在 運行時或多或少地要求顏色深度?這是否取決於設備的製造商?

您可以在運行期間的任何時候設置WindowBitmap的顏色深度。