Monday, January 21, 2013

[Android] 漸變背景圖片失真問題


最近一個困擾很久的問題,漸變效果的png圖片,設置為控件圖片或background時,在eclipse上看著沒有什麼問題,但是在設備上運行時,可以看到明顯的一圈圈的輪廓線,圖片嚴重失真。

在網上google了一下似乎這個問題很多人遇到,找到一種解釋是Android設備display默認是採用16-bits color palette來表示所有顏色,因此對於帶alpha值的32位png圖片會出現顯示失真。
這個問題有兩種解決方法:
1.第一種方法最簡單直接(推薦),設置需要顯示Activity的PixelFormat,

getWindow().setFormat(PixelFormat.RGBA_8888);
PS:在onCreate()中直接加
RGBA_8888為android的一種32位顏色格式,R,G,B,A分別用八位表示,Android默認格式是PixelFormat.OPAQUE,其是不帶Alpha值的。設置之後可以看到圖片的顯示效果就和在PC上看到一樣,不會出現帶狀的輪廓線了。

2.第二種方法比較麻煩,就是將你需要要顯示的view設置為一個surfaceview,這樣也可以達到同樣的顯示效果,但這種方法代價較大,不推薦。

No comments:

Post a Comment