4

그래서 이런 일이 발생하는 이유를 모르겠습니다. 유니버설 이미지 로더를 사용하여이 이미지를로드하고 있습니다. 그것은 픽셀의 마지막 라인이 이상한 이유 때문에 거리에있는 것처럼 보입니다. 나는 이미지가 고르게 펴지 길 원한다. (이상하게 보일지는 모르지만 아래 이미지는 데모 용입니다.)ImageView가 이미지를 제대로 늘리지 못합니다.

첫 번째와 마지막 이미지는 신경 쓰지 마세요. 누군가의 얼굴을 가졌기 때문에 의도적으로 그 것을 흐리게 만들었습니다.

//setup Image Loader for loading cruise line logos 
    displayImageOptions = new DisplayImageOptions.Builder() 
    .showImageOnLoading(R.drawable.ic_launcher)//show this image when image is loading 
    .showImageForEmptyUri(R.drawable.ic_launcher)//show this image incase image doesn't exist 
    .showImageOnFail(R.drawable.ic_launcher)//show this image if fetching image from URL didn't work 
    .cacheInMemory(true)//cache image in RAM 
    .cacheOnDisc(true)//cache image in device for later use 
    .considerExifParams(true) 
    .displayer(new RoundedBitmapDisplayer(5))//super subtle rounded corners on images 
    .build(); 
+0

imageview의 경우 높이를 120dip으로 고정하고 scaletype을 fitXY로 사용하면 문제가 발생할 수 있습니다. – Sushil

+0

나는 centerCrop을 시도하고 함께 제거했다. 둘 다 작동하지 않습니다. 게다가 fitX를 사용하여 스트레칭을 만들어야합니다. – Sree

답변

5

이이 방법 RoundedBitmapDisplayer에 의해 발생되는 비트 맵을 그립니다

Images appear like this 이것은 내 유니버설 이미지 로더를 설정하는 방법입니다.

원본을 보면 캔버스 .drawRoundRect()를 사용하여 다운로드 한 이미지를 원하는 크기의 둥근 사각형으로 그릴 수있는 RoundedDrawable을 사용한다는 것을 알 수 있습니다. BitmapShader. BitmapShader는 크기 조절 (클램핑 및 타일 모드 만 지원)을 지원하지 않습니다. 대신 이미지를 표시하는 일반적인 ImageView.setImageBitmap() 방법을 사용하는 SimpleBitmapDisplayer을 사용해보십시오.

둥근 모서리가 필요한 경우이를 구현하는 다른 방법을 찾아야합니다 (예 : 비트 맵을 원하는 크기로 먼저 조정). 또 다른 옵션은 스케일링을 위해 BitmapDrawable에 위임하기 전에 Canvas.saveLayer()을 호출 한 다음 PorterDuff.Mode.DST_IN을 사용하여 둥근 모서리 마스킹 효과를 적용하는 것입니다. 어쨌든 조금 더 낮은 수준의 코드를 작성하게 될 것이지만, 사용자 정의 BitmapDisplayer에서 모든 것을 잘 캡슐화 할 수 있어야합니다.

+0

응답 해 주셔서 감사합니다. 내일 이걸 시험해보고 작동하는지 알려 줄거야. – Sree

+0

당신이 옳았다는 것이 문제였습니다. 도와 주셔서 감사합니다! – Sree

+0

여기에 작업을 게시 할 수 있습니까? 동일한 문제에 직면하고 있습니다. – Dimitri

관련 문제