밍쯔와 안작고 안귀여운 에러들🖤
[Android] Glide로 url로 받는 SVG. imageView에 넣기 본문
웹개발자분이 svg로 받는거 간단할거라는 말에
네이티브에서 svg 아이콘 적용시키는 대신, 백엔드 개발자분이 svg를 url로 보내주는 방식으로 api를 짰는데,,,,,
거짓말,,,,, 간단하지 않쟈나 😭
기존 glide로는 svg를 동적으로 바인딩 시킬 수 없었고,,, 조큼 애먹었다,,,
총 2가지 문제가 있었다.
===============
1. Glide로 SVG를 넣기
2. api 30 이하(아마)에서 리사이징한 svg가 깨지는 현상
===============
1번은 구글링하고 glide의 샘플 코드를 보고 해결했지만,
2번에서 너무너무 당황했고,,, svg가 왜 깨져,,,,!!!! 했던,,,,
1. Glide로 SVG를 넣기
아래 링크를 걸어둔 깃의 샘플 코드를 프로젝트에 넣고 모듈까지 샘플 코드에 있는 그대로 수정해주면 된다.
이때
Glide.with(iconIv.getContext()).load(Uri.parse(iconInfo.getIconImageUrl())).override(CommonUtils.getDp(activity, 50), CommonUtils.getDp(activity, 70)).into(iconIv);
이 코드로 했을때 api 30이상으로는 override를 쓰지 않고 layoutparams로 사이징했을때도
깨지지 않았으나,, 구린 테스팅폰은 api 26에서 blur된 것처럼 흐리게 나왔다.
이런느낌,,,,,,,,,,,,,,
2. api 30 이하(아마)에서 리사이징한 svg가 깨지는 현상 (svg glide blurry error)
Glide.with(iconIv.getContext()).as(PictureDrawable.class).fitCenter()
.listener(new SvgSoftwareLayerSetter())
.load(Uri.parse(iconInfo.getIconImageUrl()))
.override(CommonUtils.getDp(activity, 50), CommonUtils.getDp(activity, 70))
.into(iconIv);
위의 코드를 이렇게 다 지정해서 해주니 문제 해결!!
누군가에겐,, 당연히 이렇게 했어야지,,,!! 하는 문제였을 수 있어도,,,
아직 1년차도 안된 쪼랩은,,, 이렇게 늘 삽질과 해결을 반복한답니다~~하핳~~~
그래도 행복해~~ 절거워~~~~ 해결했음 됏땅ㅎㅅㅎ
[참고]
https://stackoverflow.com/questions/46680109/image-becomes-blurry-when-loading-svg-with-glide
https://stackoverflow.com/questions/46680109/image-becomes-blurry-when-loading-svg-with-glide
'Develop > Android | iOS' 카테고리의 다른 글
[Android] 캘린더 커스텀 하기 (calendar customizing) (0) | 2022.12.27 |
---|---|
[Android] Session is not initialized. Call KakaoSDK#init first. (0) | 2022.11.21 |
[Android] targetSdk 31 수정 후 오류들,,, (1) | 2022.11.16 |
[Android] 문자(SMS, MMS), 라인 공유 (0) | 2022.11.02 |
[Android] 상단에 붙는 탭바 (sticky tab/scroll tab) (0) | 2022.09.14 |