Array

val array = arrayOf(0,1,2,3) → 한번 선언하고 나면 배열의크기가 4로 정해지게된다.

수정이나 삭제가 불가능하다.

array.add (x) array.remove(x)

 

ArrayList (MutableList)

val arrayList = arrayListOf(0,1,2,3) → Array와 달리 크기의 변경이 가능하고 값을 변경할 수 있다.

arrayList.add(4) (o), arrayList.remove(0)

 

**mutableList와 ArrayList의 차이점

MutableList → Interface, 인스턴스를 만들 수 없음

ArrayList → 추상 Class, 인스턴스를 만들 수 있음

방법1

//화면 절전모드 해제 ---1
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

//화면 절전모드 해제 취소 ---2
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

 

화면 절전모드 해제를 하는 경우 해당 Activity에 있는동안은 화면이 계속 켜진다.

화면 절전모드 해제 취소를 하는 경우엔 절전모드가 해제된다.

화면이 절전이 된 상태에서 해당 코드를 실행하면 화면이 다시 밝아짐

해당 Activity가 종료되면 다시 기기설정을 따름


방법2

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
android:keepScreenOn="true">
        ...
    </RelativeLayout>

해당 Activity의 xml에 keepScreenOn=”true”값을 설정해 준다.


특징

이 접근 방식의 장점은 wake lock(CPU를 켜진 상태로 유지 참조)과 달리 특정 권한이 필요하지 않고 앱이 사용하지 않는 리소스를 해제할 필요 없이 사용자가 애플리케이션 간에 이동할 수 있도록 플랫폼이 올바르게 관리한다는 것입니다.


참고

실행 중인 애플리케이션에서 계속 화면이 켜져 있을 필요가 없다면(예를 들어, 특정 시간 동안 활동이 없을 때 화면을 타임아웃하려는 경우) FLAG_KEEP_SCREEN_ON플래그를 삭제하지 않아도 됩니다. 창 관리자는 앱이 백그라운드로 이동하거나 포그라운드로 돌아갈 때 올바른 작업을 하도록 확인합니다. 하지만, 명시적으로 플래그를 삭제하여 화면이 꺼지도록 하려면 다음과 같이 clearFlags() 를 사용합니다. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

'Android개발 > Kotlin' 카테고리의 다른 글

[Android][Kotlin]Bitmap  (0) 2025.04.30
[Android][Kotlin]Array와 ArrayList 차이  (0) 2025.04.30
[Android][Kotlin]View의 Height구하기  (0) 2025.04.30
[Android][Kotlin]SpannableString  (0) 2025.04.30
[Android][Kotlin]Hilt  (0) 2025.04.30

binding.view.layoutParams.height → layoutParams를 입력하지 않고 binding.view.height만을 입력하는 경우 0이 출력됨

textView의 경우에는 binding.textView.lineHeight를 사용해야 해당 TextView의 높이를 구할 수 있다.

//화면상에 보여지는 절대값 Screen Height값
fun getScreenHeight(context: Context): Int {
    val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
		//R: API Level30 (Android11)
    return if (Build.VERSION.SDK_INT>= Build.VERSION_CODES.R) { 
        val windowMetrics = wm.currentWindowMetrics
		val insets = windowMetrics.windowInsets
					  .getInsetsIgnoringVisibility(WindowInsets.Type.systemBars())
        windowMetrics.bounds.height() - insets.bottom - insets.top
    } else { //Android11 이하
        val displayMetrics = DisplayMetrics()
        wm.defaultDisplay.getMetrics(displayMetrics)
        displayMetrics.heightPixels
    }
}

- UnderBar 긋기

 val underlinedText = SpannableString(viewText).apply {
        setSpan(UnderlineSpan(), 0, viewText.length, 0)
    }
    
    binding.tv.text = underlinedText

+ Recent posts