본문 바로가기

Android/정리 노트

[Android/Kotlin] Checkbox 전체 선택 구현(Implements Multi-Level Checkbox for check all) 회원 가입 창을 만들 때면 봉착하는 난감한 상황이 있다. 주로 약관 동의에 들어가는 전체 선택 기능... 참 별거 아닌데 가볍게 로직을 짜 보면 원하는 대로 기능이 동작하지 않거나 리스너 콜백이 서로 물려서 무한루프에 빠지거나.. 암튼 대체 왜 이게 기본 기능으로 구현이 안 되어 있을까 싶고, MaterialDesign 페이지를 봐도 전체 선택 기능에 애매한 상태(indeterminate state)를 나타내는 것도 있지만, Implementation탭 에는 눈을 씻고 찾아봐도 해당 기능을 구현할 수 있는 속성은 없다. 구글링을 해봐도 간단하고 유연하게(여러 단계의 적용 등) 써먹을 수 있는 코드는 안 보여서, 만들어 놓으면 필요할 때마다 써먹을 수 있을 것 같아 최대한 간단하게 사용할 수 있도록 구상을.. 더보기
[Android/kotlin] 전화번호로 주소록 이름 가져오기Get contact display name by phone number 작성 기준 sdk 31 Notice 이 포스팅은 검색 기능의 구현에는 적합하지 않습니다. 단순히 전화번호로 주소록에 등록된 이름을 가져오는 내용입니다. ex) search "0101234" result "01012345678", "01012341234"... >> X 전화 관련 서비스를 만들기 위해 기술조사를 하며 예제를 만들어 보다가 전화번호는 받아도 주소록에 등록된 이름은 받아오지 못하여 따로 기능을 만들기 위해 찾아봄 Reference) 연락처 정보 가져오기 공식 문서 위 문서에는 예제로 주소록에 등록된 이름(Contact Display Name)을 기준으로 검색하여 보여주고, 링크된 하단에 Column 상관없이 검색할 수 있는 내용이 있어 사용함 권한 Runtime Permission이므로 실행.. 더보기
[Android/안드로이드] VibrationEffect 사용하기(createWaveForm amplitude 제대로 사용하기) 언젠가부터 위처럼 os설정에 진동 세기조절이 있어 이를 컨트롤 할 수 있는 라이브러리를 찾게되었다. 찾아보니 API26부터 지원되는 VibrationEffect라는 클래스가 존재했다. 이 포스팅은 VibrationEffect를 다루고 createWaveform 메소드를 어떻게 사용해야 하는지에 대한 정리이다. Vibrator.vibrate() 기존의 milliseconds와 pattern을 사용하는 메소드는 deprecated되고 VibrationEffect를 인자로 받는 메소드가 있다. 여기서는 AudioAttribute를 사용하는 메소드는 다루지 않는다. VibrationEffect 두가지 메소드가 있다. createOneShot(milliseconds, amplitude) createWaveForm.. 더보기
[Android/안드로이드] 카메라로 사진 찍어 가져오기 (get photo from camera) 갤러리나 카메라로 사진을 가져오는 기능을 구현해야 할 때가 많다. 상당히 많이 쓰이는 기능이라 자료가 많지만, 각종 블로그들을 따라하다보면 Cursor 부분에서 NullPointerException이 뜬다. 뭘 덜 따라했는지 권한문제인지(퍼미션 주고 체크도 함) 이제는 막힌 방법인지 여튼 안됐다. 그러다 어떤 최신 블로그 포스팅 보고 구현에 성공하고 다른 방법있나 구글링을 하다가 개발자 문서에서 공식적인 방법(?)을 발견.. https://developer.android.com/training/camera/photobasics.html 이 포스팅은 위 글을 참고해 정리한 것이니 더 자세한 정보를 알고싶다면 꼭 꼭 들어가 읽어봅시다. 카메라로 사진 찍어 이미지 띄우기 private void sendTake.. 더보기
[Android/안드로이드] 손가락을 따라 회전하는 이미지 뷰(rotate image on touch) 개발을 하다보면 손가락을 따라 회전을 시켜야하는 이미지 View가 필요하다. 이를테면 룰렛, 시계, 방탈출 게임의 금고 손잡이 등등... RotateAnimation 클래스를 이용해 특정 이벤트 발생시 얼만큼 회전시킬 수는 있지만, 터치를 따라 회전 하는 동작은 난감하다. 결국 정말 하기 싫었지만 삼각함수를 써서 구현했다... SpinnableImageView class먼저 클래스를 하나 생성. public class SpinnableImageView extends android.support.v7.widget.AppCompatImageView { private double mCurrAngle = 0; private double mPrevAngle = 0; private double mAddAngle =.. 더보기
[Android/안드로이드] 자바 코드로 hask key 가져오기(get hash key in runtime) 카카오, 페이스북, 네이버 등등 로그인 API나 다른 여러 API를 쓸 때 해당 서비스를 사용하려면 앱에 signing한 keystore의 Hash key를 등록해야 하는 경우가 있다. 보통 그런 플랫폼의 경우 입력창 근처의 도움말이나 개발가이드를 동해 Hash key를 알수있는 방법을 알려주고 (개인적인 경험으로는)과반수가 터미널의 Command line을 통한 방법을 알려준다. 그러나 자주 해보고 익숙한 사람이라면 터미널로도 문제없이 해시키를 찾아내어 등록하지만 Hash key를 처음 접한 사람은 keystore가 뭔지도 모르며 자잘한 실수로 이상한 key를 뽑아내어 난항을 겪기도 한다. 그래서 잘못된 값을 뽑아낼 일이 없는 가장 확실한 방법을 소개하고자 한다. 이 방법은 구글링을 조금만 해봐도 알 .. 더보기