본문 바로가기

IT/Android

(48)
android / 안드로이드 webview에서 window.popup() 띄우기 웹뷰에서 window.popup()으로 새 창을 띄우는 코드가 있었는데, 안드로이드 앱에서는 새 창이 안뜨는 현상이 발견됐다. window.popup() 으로 새 창이 뜨면, 안드로이드 내에서 dialog가 뜨게 하여 새로운 webview를 띄우는 방법으로 해결했다. popup이 뜨는 것을 감지하는 곳은 webChromClient의 onCreateWindow였다. <pre id="code..
android / 안드로이드 webview history back 화면 스크롤 유지 방법 (activity 이동) 안드로이드에서 띄운 webview에서 history back을 하면 전 화면으로 돌아가면서 refresh가 되는 현상이 생겼다. 스크롤을 내렸다가 다음 화면으로 넘어가고 뒤로 돌아왔을때, 화면이 새로고침 되어 스크롤 유지가 안됐다. 화면이 이동돼도, 이전 화면을 유지시키고 싶기 때문에 특정 화면 이동시 새로운 액티비티를 띄우고, 뒤로 갈때는 새로운 액티비티를 finish 하는 방법을 선택했다. 1. 다음 화면으로 넘어갈때 새로운 Activity를 만들어 Intent로 페이지 이동 override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean { Util.logMessage("shoudOverrideUrlLoading ==> $url"..
안드로이드 / image crop 라이브러리 사용 Android Image Cropper Android Image Cropper는 쉽게 이미지를 크롭하는 라이브러리이다. https://github.com/CanHub/Android-Image-Cropper GitHub - CanHub/Android-Image-Cropper: Image Cropping Library for Android, optimised for Camera / Gallery. Image Cropping Library for Android, optimised for Camera / Gallery. - GitHub - CanHub/Android-Image-Cropper: Image Cropping Library for Android, optimised for Camera / Gallery...
안드로이드 / android 13 photo picker 사용방법 사용 배경 기존에 사용하던 Image picker+crop 라이브러리가 android13의 일부 기종에서만 갤러리를 못가지고 왔다. android13 대응이 되어있지 않은 라이브러리라, 해당 라이브러리 사용이 더이상 힘들었다. 원하는 Image picker+crop 라이브러리가 딱히 없어서, android13부터 등장한 photo picker를 적용하고, crop라이브러리를 따로 사용했다. crop 라이브러리 적용기는 하단 링크에서~ https://dev-ej2.tistory.com/81 안드로이드 / image crop 라이브러리 사용 Android Image Cropper Android Image Cropper는 쉽게 이미지를 크롭하는 라이브러리이다. https://github.com/CanHub/A..
안드로이드 스튜디오 버전 업데이트 방법 (+기린 giraffe 새로운 UI 적용) 안드로이드 스튜디오 버전이 전기뱀장어였는데, 기린으로 업데이트를 해보았다. 1. Check for Updates... 를 클릭하여 업데이트 할 버전이 있는지 확인한다. 2. 홈페이지에서 최신 버전을 다운받는다. 안드로이드 스튜디오내에서 업데이트를 눌러도 자동으로 업데이트가 되는게 아닌, 다운로드 홈페이지로 이동을 시킨다... 따라서, 홈페이지에서 직접 다운로드를 해주어야 한다. ㅋㅋㅋ https://developer.android.com/studio Download Android Studio & App Tools - Android Developers Android Studio provides app builders with an integrated development environment (IDE) o..
안드로이드 스튜디오 / GoogleMap 클러스터링 마커에 uri를 통해 이미지 로드시 기본마커 나타날때 구글맵 클러스터링 마커에 glide를 이용하여 이미지를 표시하려고 했는데, 이미지를 로드하기 전에 마커가 먼저 찍혀버려서 기본 마커가 표시되고 난 다음에 이미지 마커가 표시되는 현상이 생겼다. >>> 마커render가 완료되기 전에는 마커를 안보이게 하고, 마커render가 완료된 시점에 마커를 보이게 해야 한다. onBeforeClusterItemRendered에서 marker visible을 false로 해주고, onClusterItemRenedred에서 marker visible을 true로 해주었다. override fun onBeforeClusterItemRendered( item: MyItem, markerOptions: MarkerOptions ) { super.onBeforeClusterI..
안드로이드 스튜디오 / navigation fragment backStack 없애기 (popupTo / popUpToInclusive) navigation component를 이용하여 fragment를 이동시켰는데, 뒤로가기를 누르면 원치 않는 backstack이 남아있는 문제가 생겼다. 예를들어, 회원가입시 아이디 중복확인 -> 핸드폰 인증 -> 회원 정보 입력 -> 회원가입 완료 플로우를 framgent 이동으로 한다. 회원가입이 완료가 되어도, 뒤로가기 누르면 회원정보 입력 fragment가 그대로 남아, 회원가입이 또 요청가능해지는 경우가 생길 수 있다. 이를 해결하기 위해 회원가입 activity를 따로 띄워, 회원가입 완료시 activity를 종료하는 방법이 있다. 프로젝트가 SAA(Single Activity Architecher)로 이루어져있으면 위의 방법으로는 해결하기 곤란하다. 같은 모든 화면이 fragment로 구성되..
안드로이드 스튜디오 / 버튼 중복 클릭 방지하기 - api 중복 요청 없애자 모든 사용자가 버튼을 의도한대로 한번만 누르면 참 좋겠지만.. 사용자를 다 통제할 수는 없었다. 버튼을 눌러 api를 요청하고, 응답을 기다리는 그 사이에 버튼을 한 번 더 클릭하여 api가 중복으로 호출되는 일이 발생했다. 해결방법은 다양하게 있을텐데 (interval 시간을 주는 등) 중복클릭 방지처리를 해야하는 버튼이 많아서 간단하게 enabled 설정값만 주었다. fun btnClick(view: View){ if(view.isEnabled){ api 호출 } view.isEnabled = false } dataBinding을 사용해서, viewModel에서 버튼 클릭 함수를 다뤄줬다. 버튼이 isEnabled이 true인 경우에만 호출을 해주었고, 클릭 이벤트가 생기면 isEnabled를 fal..

반응형