본문 바로가기

안드로이드

[Android] 권한 승인 시, Activity가 깜빡이는 현상. (Blink) Android M 버전 부터 권한 때문에 다들 이슈가 많을 겁니다. 이중 경험 했던 한 이슈를 공유하고자 합니다. M 버전을 대응 하기 위해 승인 팝업을 띄웠는데요.팝업에서 승인을 하면, 백그라운드에 있는 Activity가 Refresh 되면서 깜빡이는 현상이 발생 합니다. 원인이 무얼까 아무리 찾아봐도 소스상에는 큰 문제가 없는 것 같고,카톡은 깜빡이는데 깜빡이지 않는 앱들도 있으니 골치가 아팠지요. 해결책은 아주 간단했습니다. build.gradle 에 targetSDKVersion 을 23으로 설정 하면 됩니다. 23 하위 버전으로 설정 하게 되면 Refresh가 되고,23 버전 부터는 자연스럽게 동작이 이뤄집니다. 참고하세요. 더보기
[Android] View translate animation 뷰를 이동 시키는 애니메이션을 구사할 때, 아래와 같은 형태를 먼저 생각하게 됩니다. 1. translate xml을 이용하여 애니메이션을 지정한다.2. xml로 Animation 클래스를 생성 한다.3. 애니메이션을 넣고자 하는 View에 설정 한다.4. Animation을 start 시킨다. 위와 같은 형태는 복잡할 뿐만 아니라 버그나 예외 상황이 너무 많이 발생 합니다.역시나 구글 형님들이 좋은 API를 만들어 두었네요. mView.animate().translationY(500).withLayer();위와 같이 하면 mView 라는 View를 500px 아래로 내리는 애니메이션을 실행 해라. withLayer 함수를 함께 사용하면 mView가 그 자리에 고정이 됩니다. 만약 아래 두 함수를 번갈아.. 더보기
[Android] RecyclerView를 이용한 ExpandableListView ExpandableListView를 사용하면 리스트가 애니메이션이 없이 그냥 생성되었다가 사라지는 것을 반복 합니다.너무 보기 안좋죠~ RecyclerView를 사용하시면 아시 겠지만, 리스트 insert,remove,update동작이 자연스럽게 잘 되어 있습니다.이걸로 이용하면 쉽게 훨씬 더 낫겠다 싶어서 한번 검색을 해본 순간역시나 저와 같은 생각을 가진 분이 이미 예제를 구현해 두셨네요. https://github.com/anandbose/ExpandableListViewDemo 위 git 소스를 보시면 다른게 없습니다.그냥 버튼을 누르면 리스트를 insert 시키고,다시 한번 버튼을 눌렀을 경우 remove를 시키는 것이지요. 참고하세요. 더보기
[Android] android.net.conn.CONNECTIVITY_CHANGE 안드로이드에서 네트워크가 끊겼는지 실시간으로 알아보는 방법으로 아래와 같이 사용하시는 분들도 있을 것이다. // Broadcast Listener 등록 (onCreate나 onResume에 할당)IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); try{ registerReceiver(mNetworkStateReceiver, filter); }catch (Exception e){ if (RingQConfig.DEBUG) e.printStackTrace(); } // Broadcast Listener 해제 (onDestroy나 onPause에 할당)try { if (mNetworkStateReceiver != nu.. 더보기
[Android] Get RealPath from Uri public class RealPathUtil { public static String getRealPath(Context context, Uri uri) { String realPath; // SDK = 11 && SDK 19 (Android 4.4) else { realP.. 더보기
[Android] WebView File Upload input 태그를 이용하여 파일 업로드를 할 때, Chrome Browser에서는 잘 되지만,앱 WebView에서는 동작을 하지 않는다. 결국 구글링과 Chrome 소스를 참고 해서 File Upload를 테스트 해 보았다. 내가 테스트한 WebView 셋팅 소스 이다.가장 중요한 부분이 setWebChromeClient 함수 이다. private static final String TYPE_IMAGE = "image/*"; private static final int INPUT_FILE_REQUEST_CODE = 1; private ValueCallback mUploadMessage; private ValueCallback mFilePathCallback; private String mCameraPho.. 더보기
[Android] Scheme 설정 시, 앱이 안보이는 현상 scheme를 통하여 앱을 실행하고자 할 때, AndroidManifest에 지정을 해주는 데요.갑자기 앱 아이콘이 보이지 않는 현상이 발생합니다. 이럴땐 당황하지 말고 혹시 아래와 같이 쓰시지 않았나요? 위와 같이 intent-filter에 MAIN과 VIEW를 같이 겹쳐 놓으시면VIEW로 인식이 되어 앱이 설치는 되었지만 아이콘이 보이지 않는 거죠. 그래서 아래와 같이 따로 지정하시면 됩니다. 참고하세요. 더보기
[Android ] WebView addJavascriptInterface 사용시 유의점. 개발 중인 앱이 API 17 미만 버전을 지원한 상태에서 addJavascriptInterface를 사용할 경우, 아래와 같은 설명이 나옵니다. WebView.addJavascriptInterface should not be called with minSdkVersion < 17 for security reasons: JavaScript can use reflection to manipulate application less... (Ctrl+F1) For applications built for API levels below 17, WebView#addJavascriptInterface presents a security hazard as JavaScript on the target web page ha.. 더보기