728x90
반응형
맹세코 노안이 올 시기가 아닌데 디바이스의 이미지가 좀 흐릿해 보인다.
서버에서 이미지를 엉뚱한걸 보내나 싶어서 다운로드 받았는데 멀쩡하다.
그래서 이미지를 그냥 로컬에 담아서 ImageView에 set을 해봤는데 이것도 멀쩡하다.
그렇다면 의심해볼 녀석은 하나밖에 남지 않았다.
"야!! 글라이드!! 너 뭐하는거야?"
format이 문제가 아니다
먼저 샘플 코드를 보자. 무엇이 문제인지 찾기 위해 주석처리를 하면서 많은 옵션을 넣은 흔적이 보이는가?
Glide.with(this)
.load(R.drawable.bigimage3)
.format(DecodeFormat.PREFER_ARGB_8888)
// .diskCacheStrategy(DiskCacheStrategy.NONE)
// .skipMemoryCache(true)
// .priority(Priority.IMMEDIATE)
// .override(Target.SIZE_ORIGINAL)
.into(image_big)
결론부터 얘기하자면 format 옵션에는 아무 문제가 없다. 캐시도 아니다. 그래서 옵션이란 옵션을 하나씩 다 까볼 기세로 접근했다. 그랬더니 보이는 옵션, override. Glide는 원본의 이미지가 과하게 클 경우 비율을 유지한 상태로 리사이징을 한다. 그래서 흐릿하게 보일 수 있다. 흐릿하게라는게 어떤 의미인지 이해가 안된다면 샘플 코드를 받아서 앱을 런칭해보면 알 수 있다.
아무튼 이 리사이징이 문제라면 원본을 그대로 유지하고 이후 이미지 처리를 하면 되지 않을까? 그것이 아래와 같다.
Glide.with(this)
.load(R.drawable.bigimage3)
.override(Target.SIZE_ORIGINAL)
.into(image_big)
Target은 이미지를 로드할 때 응용할 수 있는 인터페이스다. load하는 시점에서 사이즈를 확인할테니 원본 사이즈를 변경하지 않도록 Target.SIZE_ORIGINAL로 지정한다. 클릭 이벤트로 흐릿하게 보였을 때와 조치를 취한 경우를 비교할 수 있도록 했다.
자, 나와 같은 고민을 한 개발자들이여.
어서 가서 디자이너가 작업해준 작업물을 디바이스에 뿌리거라~
728x90
반응형
'Android, iOS' 카테고리의 다른 글
Google 버그가 먹어버린 3시간, CoordinatorLayout와 RecyclerView (0) | 2020.01.14 |
---|---|
Volley에서 newRequestQueue를 Deprecated시켰다고 한다 (0) | 2020.01.06 |
JavaScript는 모르지만 WebView에서 사용하고 싶어!! (0) | 2019.11.28 |
ViewPager 안에 수평 스와이핑 View가 또 있다면? (0) | 2019.11.25 |
targetSdkVersion 28로 올렸을 때 만날 수 있는 문제점 (0) | 2019.11.13 |
Comment