2014-06-11 4 views
0

URL에서 이미지를 검색하여 ImageView에 표시하려고합니다. 작업은 매우 쉬우 며 ImageView에 이미지를 표시 할 수 있지만 품질은 정말 좋지 않습니다.InputStream에서 디코딩 할 때 이미지 품질이 크게 저하되었습니다.

는 여기에 지금까지 무슨 짓을했는지 :

Options options = new BitmapFactory.Options(); 
options.inScaled = false; 
options.inDither = false; 
options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
InputStream in = new java.net.URL(urldisplay).openStream(); 
mIcon11 = BitmapFactory.decodeStream(in,null,options); 

이미지 뷰 속성 :

<ImageView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     .../> 

내가 직접 옵션없이 decodeStream을 사용하려고하지만 결과는 여전히 동일합니다.

+0

ImageView의 크기는 픽셀 단위이며 이미지 다운로드 크기는 픽셀 단위입니다. – Niko

+0

@ Niko ImageView 속성이 내 게시물에 표시됩니다. width = match_parent이고 height는'androi : weight'와 ratio로 설정됩니다. 다운로드 한 이미지에 관해서 한 그림에서 다른 그림으로 크기가 바뀌지 만, ImageView가 자동으로 그림의 크기를 조절할 것으로 예상합니다. – 113408

+0

하지만 픽셀 단위로 표시되는 크기는 얼마입니까? 다운로드 한 이미지 픽셀 크기가 ImageView 픽셀 크기보다 크게 낮 으면 품질이 좋지 않을 수 있습니다. – Niko

답변

0

코드는 괜찮습니다. 더 나은 결과를 위해 디더링을 고려해 볼 수도 있습니다. 다운로드 한 이미지의 픽셀 수가 ImageView보다 작 으면 결과가 좋지 않습니다.

해결 방법은 더 좋은 품질의 이미지를 다운로드하거나 ImageView을 작게 변경하는 것입니다. Bitmap을 디코딩 한 후에는 프로그래밍 방식으로 ImageView 너비와 높이를 프로그래밍 방식으로 조정할 수 있습니다. Bitmap 픽셀 크기가 ImageView보다 작 으면 ImageView을 작게 만드십시오.

+0

그래서 'inDither'를 true로 설정하는 것이 좋습니다. 나는 일반적으로 더 좋은 품질을 원한다는 것을 의미합니다. – 113408

+1

디더링이 이미지에 어떤 영향을 미칠 수 있는지 아이디어를 얻기 위해 이것을 읽는 것이 좋습니다. https://en.wikipedia.org/wiki/Dither – Niko

관련 문제