본문 바로가기
728x90

전체 글86

[안드로이드] Glide로 이미지 load시 이미지가 흐려지는 경우 해결방법 문제상황 쇼핑몰에서 많이 볼 수 있는 형태인 상품 상세정보를 담은 긴 이미지를 Glide로 load하던 중 위 사진처럼 이미지가 흐릿(?)해지는 문제가 발생했습니다. Glide.with(requireActivity()).load(img).into(binding.iv_product) 기존에 제가 작성한 코드입니다. Glide는 과하게 긴 이미지를 로드하는 경우 자동으로 리사이징하여 로드되기 때문에 화질이 저하되는 것으로 추측합니다. 해결방법 해결방법은 Glide에서 제공하는 override 키워드입니다. load하는 시점에 원본 이미지 사이즈를 변경하지 않도록 override(Target.SIZE_ORIGINAL) 속성을 명시해 주겠습니다. Glide.with(requireActivity()).load(i.. 2023. 3. 13.
[안드로이드] 안드로이드 스튜디오 유용한 기능 - 기능별 단축키 지정하기 안드로이드 스튜디오를 사용해 개발을 하다 보면 자주 사용하는 기능들이 있습니다. 저 같은 경우에는 Logcat과 Emulator 항목을 자주 열었다 닫았다 하는데 단축키를 지정할 수 있다면 편리할 것 같아 찾아보게 되었습니다. 1. 먼저 Ctrl + Alt + S를 눌러 Settings → Keymap → Tool Windows로 이동합니다. 2. 단축키를 지정할 항목을 우클릭하고, "Add Keyboard Shortcut"을 클릭합니다. 3. 단축키로 지정하고 싶은 키를 누르고 "OK"를 선택하고 저장하면 단축키가 지정됩니다. 별거 아닌 것 같지만 생각보다 개발 과정에서 편리한 것 같습니닷. 2023. 3. 4.
[안드로이드] Retrofit 사용시 HTTP통신 Error 확인방법 안드로이드에서는 서버와 편리한 API 통신을 위해 Retrofit을 제공합니다. Retrofit을 이용해 서버로 데이터를 요청하고 응답을 받는 과정에서 다양한 HTTP Error나 Exception이 발생할 수 있습니다. 직접 어느 부분에서 문제가 있는지 찾으려면 까다롭기 때문에 통신 과정의 정보를 얻어야 하는데 이때 사용하는 것이 HttpLoggingInterceptor입니다. HttpLoggingInterceptor을 사용하면 요청 시점부터 응답까지 많은 통신 정보를 로그를 통해 기록할 수 있어 어디서 어떤 오류가 발생하는지 쉽게 확인이 가능합니다. 사용법 build.gradle dependencies { ... implementation 'com.squareup.okhttp3:okhttp:4.10... 2023. 3. 1.
[안드로이드] 코틀린에서 object의 정의와 사용 이번 포스팅에서는 Kotlin에서 object 키워드가 무엇을 의미하고 class와 object는 어떤 차이가 있는지에 대해 알아보겠습니다. object 키워드의 의미와 사용 코틀린에서 object 키워드는 클래스를 정의하는 동시에 객체를 생성하는 것이라고 볼 수 있습니다. Kotlin에는 Java에서 쓰이는 static 키워드가 존재하지 않기 때문에 object를 사용해 static의 개념을 표현합니다. object 키워드는 주로 다음과 같은 경우에 사용됩니다. 1. 싱글톤(Singleton) 클래스 정의 2. 동반객체(companion object) 생성 3. 익명 클래스 생성 1. 싱글톤(Singleton) 클래스 정의 싱글톤(Singleton)은 프로젝트에서 어떤 객체를 매번 생성하지 않고 하나의.. 2023. 2. 27.
[백준] 1260번 : DFS와 BFS (Kotlin) 코딩테스트에서 가장 출제율이 높다는 DFS와 BFS를 백준 대표 예제를 통해 공부해 보겠습니다. 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import java.util.* fun main() { val (n,m,v) = readLine()!!.split(" ").map {it.toInt()} val graph = Array(n+1) {IntArray(n+1)} var visit = ArrayList() repeat(m) { val (x,y) = readLine()!.. 2023. 2. 22.
[안드로이드] "token null is not valid; is your activity running?" 오류 해결방법 Dialog를 커스텀하여 사용하던 중 "token null is not valid; is your activity running?" 라는 오류 메시지가 발생했습니다. 직역하면 "토큰이 유효하지 않다, 액티비티가 실행중이니?" 라는 문구같아 해결방법을 찾아보았습니다. 원인 & 해결방법 저의 경우 다이어로그 생성 시 Context를 전달하도록 구현했습니다. 이 과정에서 액티비티에서 Context로 "applicationContext"를 전달하는데 applicationContext를 전달하는 부분이 문제였습니다. applicationContext를 전달하면 다이어로그를 어느 액티비티에 띄워야 할지 정확하게 찾지 못하는 것 같습니다. 해결방법은 Context를 this 혹은 해당 액티비티.this로 수정합니다... 2023. 2. 15.
728x90
반응형