Android - Snippet (7) 썸네일형 리스트형 키패드 외부 영역 Touch시 clearFocus override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { val focusView = currentFocus if (focusView != null) { val rect = Rect() focusView.getGlobalVisibleRect(rect) val x = ev!!.x.toInt() val y = ev!!.y.toInt() if (!rect.contains(x, y)) { val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(focusView.windowToken, 0) focusView.clearFocus() } } re.. [Android] aab를 apk로 변환 #aab -> apk aab로부터 apk 변환해서 설치 테스트를 해야 할 경우가 있다. 1. bundletool이 필요하므로 다운로드 하자 https://github.com/google/bundletool/releases 2.apk 변환 (JAVA 설치 돼 있어야 함) java -jar "bundletool-all-1.8.2.jar" build-apks --bundle="경로\XXX.aab" --output="경로\XXX.apks 3.연결된 디바이스에 APK 바로 설치 java -jar "bundletool-all-1.8.2.jar" install-apks --apks="경로\XXX.apks" 4.다양한 옵션들이 있는데 공식 문서에서 찾아보는 것도 도움이 되겠다 https://developer.andro.. [Android] StatusBar 없애기/색상변경/글자색상변경 #StatusBar Splash에선 없애고 싶고, WebView에선 '흰색 바탕+ 어두운 글씨'로 보여주고 싶을 경우 유용하게 쓰인다 # StatusBar 없애기 themes.xml 테마파일 # StatusBar 색상 변경 + 글자 색상 변경 themes.xml 테마파일 lightStatusBar = true : 밝은색의 Status Bar를 사용하겠다는 것이니, 글자 색이 어둡게 표현 된다 문제 있을시 알려 주세요. 좋은 하루 되세요! [Android] ExifInterface Under Nougat(7.0) #ExifInterface Under Nougat(7.0) ExifInterface을 InputStream이나 FileDescriptor로 사용 할 때 Nougat 이상에서만 사용할 수 있다는 컴파일 에러가 뜨는 경우가 있습니다(minSdk 24 미만일 경우) import android.media.ExifInterface { ... //Call requires API level 24 (current min is 21): android.media.ExifInterface() val ei = ExifInterface(inputStream) } [해결방법] Nougat 미만에서도 지원해야 한다면 androidx의 ExitInterface로 변경해서 사용합시다 1) dependencies 추가 implement.. [Android] PxToDp, DpToPx 인자,리턴 타입은 변경 적용해서 쓰시면 됩니다 fun convertPixelsToDp(px: Int, context: Context): Int { val metrics = context.resources.displayMetrics return px / (metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT); } fun convertDpToPixelsTo(dp: Float, context: Context): Int { val metrics = context.resources.displayMetrics; return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics).toInt() } [Android] View 이미지 캡쳐(Get Bitmap From View) #What View에 보여지는 이미지 그대로 Bitmap으로 떨구어야 하는 경우가 있습니다 배경을 깔고 그 위에 텍스트를 쓰고 '배경+Text'를 중첩해서 이미지를 만들어야 할 경우에 사용할 수 있는 예제 입니다 #How /** * View Image -> Bitmap */ fun getBitmapFromView(view: View): Bitmap? { if (view.measuredWidth [Android] logcat 로그 잘림 #What 길이가 긴 String의 경우 로그캣에 에 다 보여지지 않고 잘리는 현상이 있다 한 줄 최대 길이수는 (4*1024) 약 4000byte 결론 : 4000 byte씩 잘라서 로그 찍자 참고 : UTF-8 인코딩 상(한글 3bytes, 영문/숫자 1byte) try { while (temp.isNotEmpty()) { if (temp.length > 4000) { Log.i("SubString", temp.substring(0, 4000)); temp = temp.substring(4000); } else { break } } } catch (e: Exception) { Log.e("Exception", e.toString()); } 이전 1 다음