320x100
테스트의 경우
실제 단말기로 테스트 했으며,
1. M12 - 안드로이드 버전12(API 31)
2. S8+ - 안드로이드 버전9(API 28)
위 2가지의 기종으로 테스트를 진행함
30미만의 해상도 높이의 경우
Navigation Bar 높이도 가져와야 한다
S8+ 은
사용자가 직접 해상도를 선택할 수 있는
설정이 있다
해당 설정에 맞게
단말기 해상도를 가져온다
코드 1 : MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var bOutput: Button
private lateinit var tvMsg: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bOutput = findViewById(R.id.b_output)
tvMsg = findViewById(R.id.tv_msg)
bOutput.setOnClickListener { displaySize() }
}
private fun displaySize() {
val width: Int
val height: Int
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// 단말기 해상도 가져오기
val rect = windowManager.currentWindowMetrics.bounds
width = rect.right
height = rect.bottom
} else {
// 아래 navigation bar 높이 가져오기
val resourceId = resources.getIdentifier(
"navigation_bar_height", "dimen", "android")
val deviceHeight = if(resourceId > 0) {
resources.getDimensionPixelSize(resourceId)
} else { 0 }
// 단말기 해상도 가져오기(높이의 경우 navigation bar 높이를 더해줘야함)
val size = Point()
windowManager.defaultDisplay.getSize(size)
width = size.x
height = size.y + deviceHeight
}
tvMsg.text = "[단말기 해상도]\n가로 : ${width}px, 세로 : ${height}px"
}
}
코드 2 : activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/b_output"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="해상도 출력" />
<TextView
android:id="@+id/tv_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="none"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
320x100
'Android > Kotlin' 카테고리의 다른 글
[Android][Kotlin] strings.xml 파일 동적으로 데이터 처리 및 가져오기 (0) | 2022.10.31 |
---|---|
[Android][Kotlin] 캘린더(Calendar)로 오늘 날짜(today), 마지막 일(last day) 가져오기 (0) | 2022.10.24 |
[Android][Kotlin] Thread 에러 처리 및 UI 변경 활용 예제 (0) | 2022.10.20 |
[Android][Kotlin] 알람매니저(AlarmManager)를 이용한 알림(Notification) 호출하기 (0) | 2022.10.14 |
[Android][Kotlin] 알림(Notification) 생성, 호출하기 (0) | 2022.10.13 |