분류 전체보기
-
-
[Android] ViewFlipper Memory LeakAndroid 2021. 1. 5. 16:14
ViewFlipper가 속한 A 액티비티에서 B 액티비티로 이동 시, A 액티비티가 destroy 되었음에도 ViewFlipper가 바로 kill되지 않아 메모리 릭이 발생하는 현상... 1) Runnable을 Lamda로 바꾼다. 2) LifeCyclerListener를 사용하여 onResume시 Runnable start하고, onPause시 Runnable을 null으로 처리하여 해결함. 참고한 자료들 https://meetup.toast.com/posts/186 https://blog.danlew.net/2010/01/18/view_flipper_and_memory_leaks/
-
[Android] Memory Kill & 활동저장안함 테스트하기Android 2020. 12. 14. 10:28
개발중인 안드로이드 앱이 다른 앱 하단으로 내리거나, 시스템 상 메모리 부족이 발생했을 경우 앱의 memory를 날려 사용중이던 내용이 리셋되거나, 또는 앱이 처음부터 다시 켜지는 현상. 앱 개발 후 사용자가 실제로 사용할 때, 어떤 방식으로든 잦게 발생될 수 있으므로 개발시 미리미리 테스트하여 오동작을 수정해두면 좋다. 테스트 방법 1. 1) 앱 실행 후 홈키를 눌러 앱을 내림 2) 터미널에서 adb shell am kill PACKAGENAME 테스트 방법 2. 1) 설정 - 개발자 옵션 - 활동유지안함 on 2) 앱 실행 후 홈키를 눌러 앱을 내림 or 다른 앱을 상단으로 킴 3) 다시 앱으로 돌아감
-
[Android] GlideException Permission Denied (OS 10)Android 2020. 8. 18. 14:46
targetSDK를 29로 올려야 한다는 구글의 가이드에 따라 (새로운 앱은 2020.8까지, 기존 앱은 2020.11 까지) targetSDK를 올렸더니 OS 10 단말에서 아래와 같은 에러가 발생했다. class com.bumptech.glide.load.engine.GlideException: Failed to load resource There were 3 causes: java.io.FileNotFoundException(/storage/emulated/0/DCIM/Camera/IMG_20200818_135008.jpg: open failed: EACCES (Permission denied)) java.io.FileNotFoundException(open failed: EACCES (Permis..
-
[Android] Camera StatusBar TransparencyAndroid 2019. 8. 22. 16:15
카메라를 화면에서, StatusBar까지 카메라 영역으로 잡고 싶다면, (Status Bar의 Component들은 보이는 채로. 아예 안 보이게 하려면 그냥 Full Screen에 대해 검색해 보면 됩니다.) 일단 styles.xml의 App Theme안에 아래를 추가한다. true 그러면 원래 만들어둔 Layout이 Status Bar만큼 위로 올라가게 되는데 (Status Bar영역까지 Layout을 채우기 때문에) 각 단말의 StatusBar 높이만큼 해당 레이아웃의 Top Margin값을 주면 되겠다. public static int getStatusBarHeight(Context context) { int result = 0; int resourceId = context.getResources..
-
[Android] Color Transparency, OpacityAndroid 2019. 8. 22. 09:13
#000000 #ffffff 기본적인 블랙/화이트 컬러는 위와 같이 정의하면 되는데, 반투명한 블랙/투명한 화이트는 어떻게 만드는지에 대한 정리. #AABBBBBB 형태로, 총 8자리의 color 값을 만들되 A자리에는 아래에 정리되어 있는 투명도의 정도, B는 원래 쓰던 color code를 넣는다. 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00 즉, 80%의 투명도를 가진 black는 #cc000000 처럼 정의하면..
-
[Android] ScrollView maxHeight fixAndroid 2019. 8. 12. 16:15
아래와 같은 코드에, ScrollView에 maxHeight속성을 주거나, ScrollView의 하위 레벨 LinearLayout에 maxHeight를 아무리 주어도 고정이 되지 않았다. 그래서 찾은 방법은, 레이아웃은 위와 같이 그대로 진행하되 코드 상에 아래 내용을 넣는다. 나의 경우에는 maxHeight를 170dp로 고정했다. px과 dp에 유의하여 값을 집어 넣을 것. mSvBankList.measure(0, 0); if (mLlBankList.getMeasuredHeight() > ScreenUtils.dpToPx(getContext(), 170)) { LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( ViewGroup.LayoutP..
-
[Android] Zxing Library Code Scanner Remove Laser LineAndroid 2019. 8. 12. 14:43
레이저라인이 엄청 안지워져서 고생했는데.... xml에서 app:zxing_viewfinder_laser 값을 아무리 바꿔도 소용이 없었다. (컬러가 들어간 걸로는 잘 바뀜) 열심히 구글링 한 결과 아래 코드로 해결했음. private void disableLaser() { ViewfinderView viewFinder = barcodeView.getViewFinder(); Field scannerAlphaField = null; try { scannerAlphaField = viewFinder.getClass().getDeclaredField("SCANNER_ALPHA"); scannerAlphaField.setAccessible(true); scannerAlphaField.set(viewFinder,..