Programming(199)
-
[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 -
Canvas의 Background와 Flickering에 대한 삽질 기록
캔버스 위에 이미지를 표시해주고, 그 위에 여러개의 박스와 라벨을 그려주는 UI를 구현해야 했다. 사용자가 캔버스 내에 사각형 형태의 영역을 지정할 수 있고, 이 영역의 외부는 어둡게 표시를 해줘야 했다. 설명하는 것보다는 구현된 내용을 보여주는게 빠를 듯 하다. 간단하게 설명하면 위와 같은 UI를 만들어야했는데, 네모난 영역의 모서리는 이동 및 크기의 변경이 가능했다. 네모난 영역의 외부를 어둡게 표시하는 것 자체는 큰 문제는 아니었다. fillRect를 이용해서 외부의 영역을 네 개의 구역으로 나눠, (0, 0, 0)에 0.5의 알파값을 주고 그려주면 됐다. context.strokeStyle="rgba(0, 0, 0, 0.5)"; context.fillStyle="rgba(0, 0, 0, 0.5)"..
2019.02.20 -
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 -
주말간의 삽질과 결과물(AWS Lambda 내에서 HTTP로 JSON 데이터 불러오기)
하고 싶었던 것 온라인 게임인 스마이트(SMITE)의 홈페이지에 들어가보면, 아이템 리스트를 가져오는 API로 아이템을 불러오는 걸 알 수 있었다. 이 데이터를 특정 저장소에 저장한 뒤, 한글로 번역하고 싶었다. 문제는 시즌이 계속되는 중간에도 이 데이터는 미세하게 변경된다. 물론 모든 데이터가 그런 것은 아니다. 하지만 어찌됐건 귀찮은 문제였다. 그래서 생각해낸것이 AWS의 Lambda였다. 우선 데이터를 한글로 번역해놓은 뒤, 일부 수치는 일정 기간마다 API를 통해 업데이트하면 되지 않을까. 실제로 주말간 했던 것 Node.js나 Python을 제대로 써본적이 없었다. 물론 검색해서 더듬더듬 구현하는거야 큰 문제가 되진 않겠지만, 내 코드가 아니라 그저 복사 붙여넣기에 그치지 않을까싶었다. 그나마 ..
2019.02.18