2011-12-13 7 views
3

나는 전체 화면을 채우는 배경 이미지로 의도 된 이미지가 있습니다. 내가 가지고있는 문제는 전화에 표시된 이미지가 원본 이미지보다 훨씬 좋지 않다는 것입니다. 휴대 전화의 디스플레이 해상도가 320x480이기 때문에 이미지를 320x480 jpg 이미지로 저장 했으므로 이미지의 크기 조정과 관련되지 않습니다.안드로이드 비트 맵 원본 이미지보다 낮은 품질

다음은 내가보고있는 사진입니다. 왼쪽에는 바탕 화면에 열린 이미지가 있고, 오른쪽에는 내 안드로이드 폰에서 가져온 스크린 샷이 있습니다.

http://imgur.com/4VwkC

전화의 이미지 품질은 디더링을 추가하여 개선 될 수 있지만, 여전히 적합하지 않습니다. 나는 무슨 일이 일어나고 있는지 이해하기 위해 고심하고있다. 이미지의 충실도가 떨어지는 것처럼 보입니다. 전화기가 16m 색상을 지원하며 이미지를 잘 표시 할 수 있어야하지만 이미지가 RGB_565 형식으로 그려지는 것과 같습니다.

답변

0

많은 사람들이 그라디언트가있는 similar problems입니다. 활동이 퍼팅보십시오 :

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    Window window = getWindow(); 
    window.setFormat(PixelFormat.RGBA_8888); 
} 
+0

흠 나는 이것을 시도했지만 작동하지 않습니다. 고마워. – user1095142

+0

나는이 대답이 충분히 가깝다고 생각한다. 저는'holder.setFormat (PixelFormat.RGBA_8888)'을 내 SurfaceView 클래스의 onSurfaceChanged (SurfaceHolder 홀더) 메소드에 추가하여이 문제를 해결할 수있었습니다. 아마 내 이미지를 그릴 때 surfaceView를 사용한다고 언급 했어야합니다. 내가 이해할 수있는 기본 동작은 RGBA_8888 모드에서 비트 맵을로드/수정하는 것입니다. 그러나 기본적으로 24 비트가 아닌 16 비트 색 깊이로 화면에 그려집니다. 장치가 24 비트 색을 지원하는 경우에도 마찬가지입니다. 이상한. – user1095142

+0

SurfaceView에서 비트 맵을 그릴 때 비슷한 문제가 발생합니다. 이미지의 크기를 조정할 때 품질이 떨어지면 canvas.scale로 크기를 조정하거나 canvas.drawbitmap 메서드에서 대상 사각형을 사용하면이 홀더를 사용합니다. setFormat (PixelFormat.RGBA_8888)을 onSurfaceChange (SurfaceHolder 홀더) 메소드로 바꾼다. 어떤 아이디어? – tantonj

0

이미지가 포함 된 디렉토리는 무엇입니까?

밀도와 조심해야합니다. 예를 들어, 화면의 밀도가 낮고 이미지를 drawable-mdpi에 놓으면 화면 1과 정확히 같은 크기가 있어도 이미지가 흐려집니다.

drawable-nodpi에 이미지를 넣으십시오.

+0

을 나는 다른 폴더 주위를 이동 해봤/drawable''에 있었고, -nodpi''에서 여전히 변화 – user1095142

+0

이미지 뷰어는 바탕 화면에 같은 이미지를 보여줍니다 ? 휴대 전화가 무엇입니까? 많은 장치는 16,100 만 가지가 아닌 262144 색에 대해서만 표시 기능을 제공합니다. – HighFlyer

+0

에이스는 16m를 가지고 있지만 PPI 화면 밀도가 165 개인 이유는 –

0

jpg 압축의 결과 일 수 있습니다. 이는 손실이 있습니다. 즉, jpg로 저장할 때마다 품질이 떨어지는 것을 의미합니다. 대신 png를 사용해보십시오.

+0

감사합니다. 나는 jpgs, pngs, bmps 모든 종류를 시도했습니다. 여전히 같은 문제 – user1095142

+0

어떤 전화입니까? –

+0

삼성 갤럭시 에이스 GT S8530 – user1095142

관련 문제