2011-01-13 5 views
2

멋진 페이드 그림자가있는 투명한 PNG 이미지를 사용하는 경우 항상 Android 화면의 그림자 주위에 가장자리 선이 있습니다. emualator 나 Exclipse에서는 이것을 보여주지 않습니다. 사진보기.Android의 투명 PNG에서 렌더링 그림자의 품질

이 문제를 개선 할 방법이 있는지 궁금합니다. 이 문제는 안드로이드 화면이 24 비트 색상을 모두 표시 할 수 없거나 이미지 스케일링 및 리샘플링 사실을 나타내는 것과 관련이 있습니까?

이 예제에서는 이미지가 ImageButton 뷰에로드됩니다. 내가 소스 또는 배경으로 시도하고 그것은 같은 품질입니다.

alt text

답변

11

당신이보고있는 인공물은 "띠"로 알려진이 디스플레이는 픽셀 당 16 비트 인의 결과입니다.

이 문제를 해결하는 가장 좋은 방법은 Photoshop 또는 Paint.NET에서 이미지 애셋에 "노이즈"를 추가하는 것입니다.

또는 창을 32bpp로 설정하고 활동의 onCreate()에 추가 된 다음 줄을 super.onCreate()setContentView() 사이에 추가 할 수 있습니다. :

getWindow().setFormat(PixelFormat.RGBA_8888); 
+0

감사합니다. getWindow(). setFormat (PixelFormat.RGBA_8888); 작동하지! Photoshop에서 "노이즈"를 추가하는 것에 대해 어떤 의미가 있습니까? 위의 이미지/버튼은 그림자 효과로 blur를 사용하고 있습니다. – Lumis

+0

@Reuben : 재미 있고,이 트릭을 몰랐습니다. 밴딩에 문제가있어,이'setFormat' 메쏘드를 사용하는데있어서 단점이 있습니까? – kcoppock

+2

단점은 윈도우에 두 배의 RAM이 필요하다는 점입니다. 액세스가 두 배나 많은 메모리 때문에 렌더링 속도가 느려질 수 있습니다 (특히 소프트웨어 렌더링). –