반응형 전체 글98 xml로 버튼 커스텀 하기(selector) 저번 글에서 shape에 대해서 다뤄봤는데 이번엔 selector에 대해서 다뤄보겠습니다. shape를 먼저 쓴 이유는 아무래도 selector를 위해 shape를 알아두면 좋은 부분도 있고, shape를 더 자주 사용했기 때문입니다. 안드로이드에서 selector를 사용할 일은 꽤나 많습니다. ToggleButton에서도 selector를 통해 on off에 대해서 원하는 이미지가 등장할 수 있게 배치할 수 있습니다. 또는 버튼이 눌린 상태에 있는 동안 다른 이미지(예를 들어 버튼이 눌러지고 있는 느낌의 이미지)를 띄워줄 수도 있고, EditTextView의 포커싱을 둘 때 디자인을 변경시킬 수도 있습니다. 그와 관련된 속성을 확인한 후, 사용법에 대해서 설명하겠습니다. android:state_che.. 2021. 2. 22. xml로 버튼 커스텀 하기(shape) 얼마전 xml이 아니라 kotlin을 통해 버튼을 커스텀하는 방법에 대해 글을 썼던 기억이 있습니다. 그런데 이번에는 xml을 통해 버튼의 이미지를 커스텀하는 방식에 대해 설명해보고자 합니다. 실은 제가 많이 까먹더라구요. 자주 쓰는 부분이 아니라 한 번 만들어두면 계속 사용하다보니 새 프로젝트를 들어갈 때 마다 다른 글들을 봐야 해서 아예 새로 하나를 정리해두려고 합니다. 먼저 xml로 만들 수 있는 기본적인 drawable은 shape와 selector 두 가지가 있습니다. 이번 글에서는 shape를 다루도록 하겠습니다. shape는 기본적으로 4가지 값을 지정할 수 있습니다. rectangle, oval, line, ring 인데 차례대로 사각형, 타원, 선, 링입니다. 사각형과 선에 대해서는 크게.. 2021. 2. 13. Kotlin으로 만든 커스텀 버튼 많은 블로그를 보면 커스텀 버튼에 대한 이야기가 많습니다. 그러나 xml로 디자인 정도만 바꾼 기초적인 버튼이 대다수를 차지하고 있습니다. 그 부분은 매우 중요한 부분이 맞으나 아쉽게도 제가 원하는 부분은 코틀린 class를 통해 button을 상속받아 만든 버튼 클래스 였기 때문에 이 글에서는 그 부분을 소개하도록 하겠습니다. 먼저 제가 만든 버튼은 실제로 사용해야하는 버튼이라 여러 기능이 있지만 그 것을 가지고 와서 소개하기에는 조금 부담스러울 수 있기 때문에 간략하게 소개하기 위해 check 기능이 추가된 커스텀 버튼을 소개하겠습니다. class CheckButton @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, .. 2021. 2. 9. JSON과 GSON 이전 게시글이 JSON 데이터를 GSON으로 표현하다 찾은 문제점에 대한 글이었는데요. JSON 라이브러리를 통해 사용하는 JSON과 GSON 라이브러리를 통해 사용하는 Json은 미묘한 차이가 있다는 사실을 알게 되었습니다. 이 글을 들어가기 전에 주의해야 할 점이 있다면, JSON의 정의가 제대로 되지 않으면 GSON과 JSON이 다르다고 생각하게 된다는 것입니다. 아래 목차를 따라 정리해보았습니다. what is JSON? JSON-simple 라이브러리 what is GSON? 결론 What is JSON? JSON은 어떤 글을 봐도 일단 "가벼운 데이터 교환 형식"이라고 정의되어 있습니다. 일단 JSON을 사용하는 목적이 조금 더 네트워크에게 무리를 주지 않는 선에서 데이터를 교환하고 싶으니 각.. 2021. 1. 26. Gson과 JSON의 toString 회사에서 Json을 Gson으로 변경하는 작업을 시작한다고 합니다. 그래서 아무 생각 없이 JSONObject를 JsonObject로 바꾸는데 기본적으로 Json과 Gson에 대한 이해도가 부족하다는 것을 깨닫게 되었습니다. 솔직히 두 개의 차이점을 모르고 그냥 변경하고 있었을 때는 몰랐습니다. 이 두 개의 차이가 현저하다는 사실을요! 그러나 문제는 아래 부분의 코드에서 발생했습니다. nurl += "$t=${URLEncoder.encode(u.toString(), "utf-8")}&" 이 코드에서 u는 현재 JsonElement입니다. 하지만 원래 JSONObject를 사용할 때에는 아무런 문제도 없었죠. 하지만 이것을 Gson을 쓰기 위해 변경한 후에 자세히 보니 타입이 JsonElement로 변경되.. 2021. 1. 23. 디버깅과 릴리즈, 그리고 proguard 요즘 회사에서 코틀린으로 어플을 만들고 있는데(정확히 말하면 수정이지만), 디버깅 모드로 테스트하던 어플이 릴리즈 모드를 통해 다른 회사 사람들에게 테스트용으로 전달했더니 여러가지 기능들이 먹히지 않는 문제를 발견했습니다. 기본적으로 이것저것 검색해본 결과로는 디버그 모드가 릴리즈 모드보다 디버깅 관련 데이터를 포함하면서 실행이 되기 때문에 속도 차이가 현저하다는 얘기들이 있습니다. 실제로 제가 안드로이드 apk 파일을 만들었을 때, 디버깅 모드는 11Mb, 릴리즈 모드는 8Mb 정도로 데이터 크기부터 차이가 나는 것을 확인했습니다. 속도나 다른 부분에서는 큰 용량의 데이터를 주고 받지 않는다면 크게 체감할 수 없지만, 휴대폰의 사양을 낮췄을 때는 휴대폰이 데이터를 받지 못해 프로그램을 꺼버리는 등의 문.. 2020. 9. 3. 이전 1 ··· 13 14 15 16 17 다음 728x90 반응형