본문 바로가기

728x90
반응형

Android/Function

(29)
[안드로이드] scrcpy를 사용하여 화면 미러링 하기 https://github.com/Genymobile/scrcpy 위의 github주소에서 Windows: download를 통해 zip파일 다운 후, sdk저장 경로인 Android\sdk\platform-tools 에 덮어쓰기해줍니다. 그 후 터미널에서, scrcpy 입력하면 실행됩니다. 부하가 너무 크면 에러가 날 수 있으므로, scrcpy --bit-rate 2M --max-size 800 bit rate와 size를 조정하여 실행하였습니다.
[안드로이드] Bitmap 사이즈 줄이기 /** * reduces the size of the image * @param image * @param maxSize * @return */ private fun getResizedBitmap(image: Bitmap, maxSize: Int): Bitmap? { var width = image.width var height = image.height val bitmapRatio = width.toFloat() / height.toFloat() if (bitmapRatio > 1) { width = maxSize height = (width / bitmapRatio).toInt() } else { height = maxSize width = (height * bitmapRatio).toInt() } ..
[안드로이드] 엑셀 파일 기록 & 만들기 라이브러리 추가 https://poi.apache.org/download.html#POI-4.1.0 위의 사이트로 가서 poi-bin 압축파일 최신버전을 다운로드 받습니다. 다운로드 후 압축을 풀어, poi-5.1.0.jar 파일을 추가하면 됩니다. 간단히 추가하기 위해서 poi-5.1.0.jar 파일을 앱 프로젝트 폴더 내로 옮겼습니다. libs 폴더를 하나 만들어 옮겨줍니다. 그 후 안드로이드 스튜디오내에서, 오른쪽 클릭 하여 Add As Library하여 추가합니다. 그럼 gradle 파일에 추가된 것을 확인할 수 있습니다. saf로 파일 생성 하기 엑셀 파일을 생성, 저장하기 위해 saf를 사용합니다. @SuppressLint("SimpleDateFormat") fun exportExcelData..
[Android] Room + RxJava 정리 Dependecy // Room components def roomVersion = '2.3.0' implementation "androidx.room:room-runtime:$roomVersion" kapt "androidx.room:room-compiler:$roomVersion" implementation "androidx.room:room-ktx:$roomVersion" implementation "androidx.room:room-rxjava2:$roomVersion" androidTestImplementation "androidx.room:room-testing:$roomVersion" // RxJava implementation "io.reactivex.rxjava2:rxjava:2.2.17..
안드로이드 Manifest intent-filter 동적으로 비활성화하기 앱을 런처로 만들어주는 intent-filter를 추가하였습니다. 특정 빌드버전에서는 이를 비활성화 하고 싶었습니다. 위의 intent-filter를 따로 빼서 activity-alias에 넣어줍니다. 다만, 위의 한줄도 같이 넣어주어야 런처 홈화면으로 작동하더라는.. 시작 Activity의 onCreate에서 다음과 같이 추가해주어 활성화/비활성화가 가능합니다. 비활성화 packageManager.setComponentEnabledSetting( ComponentName(packageName, "$packageName.AliasMainActivity"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP ) 활성화..
[안드로이드] module(또는 library)에서 flavors 지정하는 법 클린 아키텍처 사용으로 presentation(app)은 data, domain 모듈을 의존하고 있습니다. 그런데 data 모듈에서만 flavor를 나누고 싶었는데, presentation이 의존하고 있으므로, 같이 변화가 필요했습니다. 다음과 같이 사용하면 됩니다. data module(gradle) android{ flavorDimensions "mode" productFlavors{ cardreader{ dimension "mode" manifestPlaceholders = [ thingsRequired: "true" ] buildConfigField "Boolean","IS_CARD", "true" } nocardreader{ dimension "mode" manifestPlaceholders =..
livedata의 "androidx.lifecycle.observe is deprecated" 해결 방안 Kotlin 1.4에서 deprecated되었습니다. 다음과 같이 사용하면 됩니다. viewModel.liveData.observe(viewLifecycleOwner, Observer { result -> }) /* viewModel.liveData.observe(viewLifecycleOwner) { result -> } */ import androidx.lifecycle.observe 를 삭제, import androidx.lifecycle.Observer를 추가합니다.
[안드로이드] 특정/모든 Fragment backstack에서 제거 supportFragmentManager.beginTransaction().apply { replace(R.id.container, calibrationFragment) addToBackStack("calibration") commit() } 위와 같이 "calibration" 이란 이름을 지정하여 backstack에 추가한 후, fragment를 교체할 수 있습니다. 만약 backstack에 위 이름의 fragment만 지워주고 싶다면, 다음과 같이 사용하면 됩니다. supportFragmentManager.popBackStack("calibration", FragmentManager.POP_BACK_STACK_INCLUSIVE) 만약 모든 backstack을 제거하고 싶다면, 다음과 같이 사용합니다...

728x90
반응형