안드로이드/리소스 관리

안드로이드 화면 회전

김어찐 2022. 6. 24. 11:37
728x90

layout 폴더에 수식어를 추가하면 회전에 따른 화면을 따로 적용할 수 있다.
layout-port : 세로 화면
layout-land : 가로 화면

 

뷰 목원하기

안드로이드에서 화면 회전이 발생하면 화면을 새롭게 만들게 된다.
이때 일부 UI 요소들은 초기 값으로 설정되기 때문에 복원하는 작업을 해야 한다.
onSaveInstanceState 메서드에서 복원 시 필요한 값을 저장한다.
onCreate 메서드에서 복원 작업을 해준다.

 

화면 회전 막기

만약 화면이 회전되는 것을 막고 고정시키고자 한다면 AndroidManifest.xml의 Activity 태그에 screenOrientation 속성으로 설정하면 된다.

 

package com.example.rotation

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

//        Log.d("test" ,"$savedInstanceState")
        if (savedInstanceState == null) {
            Log.d("test", "activity가 처음 등장하였습니다")
        } else {
            Log.d("test","화면 회전 발생")
            // 복원한다.
            textView.text = savedInstanceState.getString("data1")
        }
        button.setOnClickListener {
            textView.text = editTextTextPersonName.text
        }
    }

    // 화면 회전 발생 시 호출되는 메서드
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)

        // 복원에 필요한 데이터를 저장한다.
        outState.putString("data1",textView.text.toString())
    }
}

 

 

 

 

 

화면 고정

 

 

728x90