Programming/Android(41)
-
[Android/Kotlin] RecyclerView에 Divider 구분선 넣기
참조: RecyclerView [3] Divider 구분선 넣기, 키위남 님 How can a divider line be added in an Android RecyclerView?, StackOverflow XML에 위와 같이 선언되어있을 때, onCreate에서 item_list에 접근할 수 있다. item_list.addItemDecoration(DividerItemDecoration(this, LinearLayoutManager.VERTICAL)) onCreate에서 DividerItemDecoration 객체를 새로 생성한다. 생성자의 파라메터로는 Context와, LinearLayoutManager.VERTICAL값을 넘겨준다. 리스트가 Vertical이 아니라 Horizontal인 경우, ..
2019.02.27 -
Android에서 사용하는 단위 정리
단위 설명 px Pixels. 픽셀 단위. sp/sip Scale-independent Pixels. dp와 비슷하나, 사용자가 선택한 글꼴 크기에 의해 크기가 자동으로 조절된다. 이 단위는 글꼴 크기를 지정하는 데 사용되도록 권장된다. dp/dip Device Independent. 160dpi 화면에서 1px이 차지하는 크기이다. 320dpi 화면에서의 1dp는 2px이 된다. in Inches. 인치. mm Milimiters. 밀리미터. 디바이스의 해상도가 천차만별인 만큼 글자의 크기를 지정할때는 SP를 사용하고, UI의 레이아웃을 지정할 때는 DP를 사용하는 게 좋다. Dimension, Android Developers px, dp, sp, 크기단위 사용법 및 정리, 잡캐의 무한도전기 px, ..
2019.02.19 -
XML로 커스텀 버튼 만들기
버튼을 만들기 위해 디자이너분께 이미지를 요청했더니, 이미지를 네 장 전달받았다. 일반(Normal), 비활성화(Disabled), 눌렸을 때(Pressed), 선택됐을 때(Selected)로 추정된다. Drawable의 상태는 StateListDrawable, Android Developers을 참조하자. 이 이미지를 하나의 버튼으로 만들려면 다음의 과정을 거치면 된다. Drawable에 xml파일을 생성하고, 각 상태별 이미지를 지정해준다. 완성된 xml파일을 Button의 Background로 지정해준다. 상당히 간단하다. 우선 Drawable에 xml파일을 하나 생성해준다. 내가 가지고 있는 이미지는 button_normal, button_disabled, button_pressed, button..
2019.02.18 -
Android Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
adb를 사용해서 apk를 설치(adb -r install [패키지명])하려고 했더니, Android Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE라는 경고문구가 떳다. 검색해보니 동일한 package의 프로그램이 설치되어있을 시, 재설치를 시도하는 도중 서명키의 충돌로 인해 발생하는 에러라고 한다. 충돌이 발생한 앱을 삭제한 후 다시 설치하면 에러를 해결할 수 있다. 생각해보니 Android Studio에서 Release/Debug를 반복했을 때 해당 증상이 발생하는 경우가 있었고, 이런 경우 Android Studio에서 ‘앱을 삭제 후 다시 설치할래?’라는 늬앙스의 확인창이 출력됐었다. 여하튼 삭제하고 다시 설치하면 된다. …고 되어있었는데, 스마..
2019.02.18 -
Oreo 이상의 OS에서 Notification이 발생하지 않는 문제
>Developer warning for package "com.your.app" Failed to post notification on channel "null" See log for more details Notification이 발생하지 않아서 원인을 추적하던 중, Notification이 발생해야 할 시점에 Logcat을 확인하니 위와같은 에러가 찍혔다. 테스트용 스마트폰을 LG G5, Samsung Galaxy FE, Samsung Galaxy 7을 구비해놓고 테스트했는데, Samsung폰에서만 증상이 발생해서 제조사에 따른 문제인가 싶었다. 확인해보니 Android 8.0 부터 추가된, notification channels과 관련된 내용이었다. LG G5에서 증상이 발생하지 않은 건, 단순히..
2019.02.14 -
RecyclerView와 IndexOutOfBoundsException
기존에 릴리즈된 Android App을 유지보수하면서, RecyclerView에 아이템을 추가하는 코드가 때때로 IndexOutOfBoundsException로 인해 App Crash가 발생하는 경우가 발생했다. Android 자체를 너무 오랜만에 보다보니, RecyclerView에 대한 것부터 알아봐야했다. 자세한 내용을 정리하기엔 시간이 부족한데다가, 잘 정리된 글들이 많아서 이하의 링크로 대체한다. RecyclerView, Android Developers Android RecyclerView 사용하기, Taehwan 님 RecyclerView에 대한 고찰, Dudmy 님 스크롤이 발생했을 때 스크롤의 위치가 마지막일 경우 다음 검색결과를 불러온 뒤, notifyItemRangeChanged(int..
2019.02.14