ภาพรวม
ตัวอย่างนี้สาธิตวิธีการสร้าง ImageView และตั้งค่าความกว้าง/ความสูง (Width/Height) โดยโปรแกรมใน Android โดยใช้ LayoutParams และ Kotlin
ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่
สร้างโปรเจกต์ Android ใหม่ใน Android Studio
ขั้นตอนที่ 2: จัดรูปแบบหน้าจอหลัก (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp"
tools:context=".MainActivity">
</RelativeLayout>
ขั้นตอนที่ 3: เขียนโค้ด MainActivity.kt
import android.os.Bundle
import android.widget.ImageView
import android.widget.RelativeLayout
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val relativeLayout: RelativeLayout = findViewById(R.id.relativeLayout)
val imageView = ImageView(this).apply {
setImageResource(R.drawable.image) // ต้องมีรูปใน drawable
// ตั้งค่า LayoutParams: MATCH_PARENT ทั้งกว้างและสูง
layoutParams = RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT
)
// หรือใช้ WRAP_CONTENT สำหรับขนาดตามรูปภาพ
// scaleType = ImageView.ScaleType.CENTER_CROP // ปรับการแสดงผล
}
relativeLayout.addView(imageView)
}
}
ขั้นตอนที่ 4: ตั้งค่า AndroidManifest.xml
ใช้การตั้งค่ามาตรฐาน
ทดสอบการทำงาน
รันแอป ImageView จะเต็มหน้าจอ (MATCH_PARENT) แสดงรูปภาพที่กำหนด
LayoutParams ที่ใช้บ่อย
| Parent Layout | LayoutParams Class | Constants |
|---|---|---|
| LinearLayout | LinearLayout.LayoutParams | MATCH_PARENT, WRAP_CONTENT, weight |
| RelativeLayout | RelativeLayout.LayoutParams | MATCH_PARENT, WRAP_CONTENT, addRule() |
| ConstraintLayout | ConstraintLayout.LayoutParams | ConstraintSet, percent, chain |
| FrameLayout | FrameLayout.LayoutParams | MATCH_PARENT, WRAP_CONTENT, gravity |
| GridLayout | GridLayout.LayoutParams | rowSpec, colSpec, Gravity |
วิธีอื่นๆ
- XML: กำหนด
android:layout_widthandroid:layout_heightใน XML (แนะนำสำหรับ Layout คงที่) - ViewBinding: ใช้
binding.imageView.layoutParams.width = 200แล้วbinding.imageView.requestLayout() - Kotlin Extensions: เขียน Extension Function เพื่อความสะดวก:
fun View.updateSize(w: Int, h: Int) { layoutParams = layoutParams.apply { width = w; height = h } }