Uknow's Lab.
article thumbnail
안드로이드 무선디버깅 (Wireless Debugging)
프레임워크/Android 2023. 10. 25. 01:43

안드로이드 스튜디오에서 애뮬레이터로 애플리케이션을 실행할 수 있지만, 저는 애뮬레이터보다는 실제 스마트폰에서 테스트 및 디버깅하는 것을 선호합니다. 하지만 실제 스마트폰에서 디버깅을 하기 위해 USB 케이블을 연결하기엔 다소 번거로운 감이 있는데요. WiFi가 제공되는 환경이며, PC와 동일한 네트워크망을 사용중이라면 다행이도 무선 디버깅이 가능합니다. * 아래 내용은 Android 11 이상 기준입니다. 개발자 모드 ON 유/무선에 상관없이 디버깅을 위해서는 개발자모드가 활성화 되어있어야 합니다. [설정 앱] -> [휴대전화 정보] -> [소프트웨어 정보] -> [빌드 번호]를 5번 클릭하면 개발자 모드가 활성화됩니다. PC 스마트폰 페어링(Pairing) 및 연결(Connect) [설정 앱] -> [..

article thumbnail
[안드로이드] 버튼 색상 혹은 drawable이 적용되지 않는 현상
프레임워크/Android 2023. 3. 29. 22:01

안드로이드를 시작할 때 많은 사람들이 한 번 겪는 버튼에 색깔이나 drawable이 적용되지 않는 증상이죠. 백그라운드 속성을 지정해줬으나, 안드로이드 기본 테마 특유의 그 보라색이죠. 여기엔 두 가지 해결방법이 있습니다. AppCompatButton 사용 Button을 androidx.appcompat.widget.AppCompatButton 으로 지정해주면 background 속성이 잘 적용됩니다. Theme 변경 혹은 themes를 AppCompat으로 변경하면 됩니다. 왜 적용이 안되지? 기본 버튼이 듣질 않는 이유는 안드로이드 프로젝트를 만들었을 때, 기본적으로 MaterialComponents 테마로 적용되있기 때문입니다. MaterialComponents의 버튼은 자체적으로 backgroun..

article thumbnail
[안드로이드/코틀린] 리사이클러뷰(RecylcerView)에 아이템 클릭 리스너 넣기
프레임워크/Android 2022. 12. 26. 15:22

리스트뷰와 리사이클러뷰의 아이템 클릭 리스너 ListView에 아이템 클릭 이벤트 리스너를 넣는 것은 꽤 간단했습니다. 그냥 버튼 클릭 리스너를 다는것과 같이 setOnItemClickListener를 달아주면 되니까요 하지만 RecyclerView 안에는 어떠한 itemClickListener를 찾아볼 수 없었습니다. 이는 아이템뷰를 재사용(Recylce)하는 리사이클러뷰의 특성 때문입니다. 뷰를 재사용하기 때문에, 리스트뷰보다 적은 리소스를 사용하며, 더 유연하고 자유롭지만, 마찬가지로 뷰를 재사용하기 때문에, 아이템을 클릭했을 때 이벤트를 처리하기가 어렵다고 하네요. 하지만, 방법이 없는것은 아닙니다. 저희가 직접 아이템 클릭 리스너를 구현하여 넣어주면 되니까요. 참고로 본 포스팅에서 사용하는 리사..

article thumbnail
[Android/안드로이드] 지도 특정 시, 도에 색 칠하기 / 통계 지도 만들기
프레임워크/Android 2022. 10. 8. 22:16

모바일 앱이나 웹을 서비스 할 때, 서비스에 따라 지도에 통계치를 표기할때와 같이 지도의 색을 칠해야 할 때가 있습니다. 처음 시, 도 등 특정 지방자치단체에 색을 칠해야 함을 알았을 때, 어떻게 해야하나... 많은 고민이 있었고 3대 지도 API인 네이버, 카카오, 구글 지도 API에 삽질도 좀 하다가, 스택 오버플로우도 꽤나 많이 기웃거렸던 기억이 납니다. Javascript 관련 예제는 꽤 많은데 안드로이드 관련 예제는 별로 없어서 꽤 애먹었습니다 ㅎㅎ.... 결과적으로 지도에 색을 칠하는 것 자체는 지도 API는 별 필요가 없고 지도 svg 파일 하나와 VectorChildFinder 라이브러리면 됩니다. 지도 SVG 파일 준비 먼저 바탕이 될 지도 svg 파일 하나를 준비합니다. 구글링을 해봤더..

article thumbnail
[안드로이드/코틀린] 리사이클러뷰(RecyclerView) 사용법 및 예제
프레임워크/Android 2022. 6. 20. 22:06

리사이클러뷰(RecyclerView) 리사이클러뷰는 안드로이드에서 리스트를 만들기 위해 사용되는 뷰 입니다. 리스트를 만들기 위해 사용된다는 점에서 리스트뷰(ListView)와 비슷하지만, 뷰를 재활용(Recycler)한다는 점에서 리스트뷰보다 더 개선된 형태입니다. 하지만, 뷰를 재활용 하기 때문에 각 뷰의 내용을 담아둘 뷰 홀더(View Holder)가 필요합니다. 아이템 레이아웃 만들기 item_recycler_view.xml 아이템의 각 행을 담을 레이아웃을 만듭니다. 데이터 클래스 만들기 data class BoardItem(val time: String, val title: String, val name: String) 리스트의 각 아이템의 내용이 담길 데이터 클래스를 하나 만듭니다. 저는 예..

article thumbnail
[안드로이드] This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2021.2.1 or newer. 오류 및 해결
프레임워크/Android 2022. 6. 20. 00:54

집에 와 깃헙에 올려두었던 저장소를 클론하고, 해당 프로젝트를 열었더니 빨간줄이 날 반겨주었다. 대충 IntelliJ(혹은 안드로이드 스튜디오)가 이 프로젝트를 열 수 없으니, 2021.2.1 버전이나 그보다 더 최신버전으로 업데이트 한 후에 열라는 것 같다. 학교 연구실 컴퓨터에서 최신버전의 안드로이드 스튜디오를 사용해 프로젝트를 생성하고, 집에서 개인 노트북으로 하려니 버전이 맞지 않아 발생한 오류였다... ㅠㅠ 뭐... 귀찮지만 별 수 없으니 안드로이드 스튜디오를 업데이트를 해주도록 하자 안드로이드 상단 툴바의 Help - Check for Updates를 누른다. 그러면 이러한 창이 뜰 것이다. 뜨지 않는다면 우측의 팝업창 형태로 새로운 버전이 감지되었다고 뜰 것이다. Update and Rest..

[안드로이드] 코틀린 뷰 바인딩 (View Binding)
프레임워크/Android 2022. 4. 17. 21:15

뷰 바인딩(View Binding)은 코틀린 코드 상에서 findViewById를 통해 일일히 뷰를 찾아줄 필요 없이, 코틀린 코드 상에서 레이아웃에 더 쉽게 접근할 수 있도록 해주는 기능입니다. 뷰 바인딩 적용 방법은 아래와 같습니다. build.grandle 에 아래 코드 삽입 buildTypes { buildFeatures { viewBinding true } } build.grandle의 buildTypes 부분에 위 코드를 삽입합니다. 코틀린 코드 상에서 xml 참조하기 액티비티는 보통 Kotlin(Java) 파일과 xml 파일이 쌍을 이룹니다. LoginActivity.kt 과 이에 대응되는 레이아웃 파일인 activity_login.xml이 있고, 여기에 뷰 객체인 btn_login을 생성하..

article thumbnail
안드로이드 오레오(Oreo, Android 8) 화면회전 오류 시 해결방법
프레임워크/Android 2022. 2. 16. 00:28

애플리케이션을 디자인할때, 사용자에게 몰입감을 줄 수 있도록 특정 화면에서 화면을 가로/세로모드로 변경하는 방법이 있다. 그러나 안드로이드 오레오(Oreo) 버전, 그중에서도 안드로이드 8.0 버전에서 화면 회전 시 에러가 발생할 수 있다. 그에 따른 해결방법으로는 아래와 같은 방법이 있다. 1. Oreo 버전에서 대응코드 삽입 if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } 오레오 버전일때 위와같이 if문으로 감싸 예외처리를 해준다. 그러나 오레오 버전일때 화면회전을 하지 않게 할 뿐이므로 화면회전이 되지않아 근본적인 해결책으로 보기..