본문 바로가기

IT/Android

[Android] Soft Key 기종의 소프트 키보드 관련 문제 해결 방법 현상 키보드값을 제대로 가져오지 못하여, 이모티콘 레이아웃이 화면은 덮는 현상이 벌어지거나, 너무 아래에 치우쳐져서 나오는 현상이 발생합니다. 최하단 이미지 첨부 원인 Android SDK 21 이후부터 Soft key를 사용하는 기종에서 화면을 가져올 때, 소프트키까지 포함한 화면을 가져오면서 화면의 높이까지 원하지 않는 크기로 가져오면 발생하게 되었습니다. 해결책 SDD 21 이후 버전에 대해서 windowManger를 통해서 DefaultDisplay르 가져오도록 요청하게 해야 합니다. /** * SDK 21 이후 부터 소프트키 기종 화면 높이를 잘 못 가져오는 현상 있음 */ if(Build.VERSION.SDK_INT >= 21) { Display display = getActivity().ge.. 더보기
[Android] Retrofit 2.0 Multipart Post 전송 프로젝트에 Retrofit 2.0을 이용하여 개발하던 중, Multipart로 사진 파일을 서버로 전송해야 하는 상황이 있었다. 이 때, 여러 삽질을 통해 Multipart에 대해서 길진 않지만 정리하고자 한다. 아래와 같이 EndPoint를 @Multipart 어노테이션을 이용하여 정의한다.(여기까지는 Retrofit Docs를 읽으면 알 수 있다....)1234@Multipart@POST("업로드 서버 주소")Observable uploadPhoto( @Part MultipartBody.Part file );cs 하지만 @Part에 해당하는 정보가 무엇이 들어가야 하는지에 대한 설명은 어디에도 나와있지 않았다... (고로 나도 설명하지 않으려...농담이다...) MultipartBody.Part 클래.. 더보기
[Android] 안드로이드 개발에 유용한 라이브러리 정리 라이브러리 관련 정리된 Github Pagehttps://github.com/wasabeef/awesome-android-ui 안드로이드 Crop 관련 라이브러리https://github.com/ArthurHub/Android-Image-Cropperhttps://github.com/Yalantis/uCrop WebView Extend https://github.com/TheFinestArtist/FinestWebView-Android 더보기
[Android] RxJava를 이용한 EventBus 회사 서비스를 제작하던 중, Broadcast나 interface로 처리하기 곤란한 부분들이 존재하였다. 그래서 EventBus를 사용할려고 하였으나, 기존 프로젝트에 RxJava를 이용하고 있었기에 RxJava를 이용하여 EventBus를 만들어 사용하기로 하였다. Rx의 Subscription을 잘 이용하면 될거라고 생각하고 작성하였다. 장점은 BroadCast로 전달할 수 없는 객체를 전달할 수 있으며, interface를 여러개 만들어 전달에 전달을 하지 않아도 된다는 점이다. 또한 Lifecycle만 잘 지키면 메모리 관리 측면에서 이득을 볼 수 있는 부분이 있다. RxEventBus.java12345678910111213import rx.Observable;import rx.subjects.P.. 더보기
[Android] Glide의 SimpleTarget 관련 처리 Glide 라이브러리 쓰다보면 비동기 처리 쪽은 SimpleTarget 관련해서 문제가 생길 때가 있다. 나같은 경우는 Fragment에서 Glide로 비트맵을 받아서 Rounded처리를 하고 난 뒤 이미지 뷰에 넣는 작업을 작성해놨는데, Glide가 다 로드가 되지 않는 상태에서 Fragment를 나가게 되면, Null Point Exception을 뿜으면서 죽어버리는 현상을 맞이하게 되었다. Fragment의 인스턴스는 해제되었지만, SimpleTarget에 있는 큐들은 해제되지 않았기 때문이다. 이와 관련해서 Glide의 RequestManager를 이용하여 처리하여 해결하였다.(삽질과 구글링으로 극복을....) RequestManager mGlideRequestManager; mGlideReque.. 더보기
[Android] Google Analytics 쉽게 적용하기 안드로이드 개발 중 Google Analytics를 사용하게 되었는데, 좀더 쉽고 편리하게 사용하고자 하였다. 그래서 Application 단에서 GoogleAnalytics 관련된 처리를 다루고, 실제 소스상에서 쉽게 다루고자 추상 팩토리 패턴으로 작성하여 보았다. 여기서는 gradle에 dependency 추가와 global-tracker.xml 에 대한 설명의 생략합니다.(구글링하면 금방 나옵니다.) GoogleAnalyticsFactory.java 해당 클래스 가장 뼈대가 될 클래스이다. GoogleAnalytics의 인스턴스를 할당하고, Tracker를 초기화하고 생성한다.import android.content.Context; import android.support.multidex.Multi.. 더보기