나는 전체 화면을 채우는 배경 이미지로 의도 된 이미지가 있습니다. 내가 가지고있는 문제는 전화에 표시된 이미지가 원본 이미지보다 훨씬 좋지 않다는 것입니다. 휴대 전화의 디스플레이 해상도가 320x480이기 때문에 이미지를 320x480 jpg 이미지로 저장 했으므로 이미지의 크기 조정과 관련되지 않습니다.안드로이드 비트 맵 원본 이미지보다 낮은 품질
다음은 내가보고있는 사진입니다. 왼쪽에는 바탕 화면에 열린 이미지가 있고, 오른쪽에는 내 안드로이드 폰에서 가져온 스크린 샷이 있습니다.
전화의 이미지 품질은 디더링을 추가하여 개선 될 수 있지만, 여전히 적합하지 않습니다. 나는 무슨 일이 일어나고 있는지 이해하기 위해 고심하고있다. 이미지의 충실도가 떨어지는 것처럼 보입니다. 전화기가 16m 색상을 지원하며 이미지를 잘 표시 할 수 있어야하지만 이미지가 RGB_565 형식으로 그려지는 것과 같습니다.
흠 나는 이것을 시도했지만 작동하지 않습니다. 고마워. – user1095142
나는이 대답이 충분히 가깝다고 생각한다. 저는'holder.setFormat (PixelFormat.RGBA_8888)'을 내 SurfaceView 클래스의 onSurfaceChanged (SurfaceHolder 홀더) 메소드에 추가하여이 문제를 해결할 수있었습니다. 아마 내 이미지를 그릴 때 surfaceView를 사용한다고 언급 했어야합니다. 내가 이해할 수있는 기본 동작은 RGBA_8888 모드에서 비트 맵을로드/수정하는 것입니다. 그러나 기본적으로 24 비트가 아닌 16 비트 색 깊이로 화면에 그려집니다. 장치가 24 비트 색을 지원하는 경우에도 마찬가지입니다. 이상한. – user1095142
SurfaceView에서 비트 맵을 그릴 때 비슷한 문제가 발생합니다. 이미지의 크기를 조정할 때 품질이 떨어지면 canvas.scale로 크기를 조정하거나 canvas.drawbitmap 메서드에서 대상 사각형을 사용하면이 홀더를 사용합니다. setFormat (PixelFormat.RGBA_8888)을 onSurfaceChange (SurfaceHolder 홀더) 메소드로 바꾼다. 어떤 아이디어? – tantonj