Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีตั้งค่าความกว้างและสูงของ ImageView โดยโปรแกรมใน Android ด้วย Kotlin

ภาพรวม

ตัวอย่างนี้สาธิตวิธีการสร้าง 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 LayoutLayoutParams ClassConstants
LinearLayoutLinearLayout.LayoutParamsMATCH_PARENT, WRAP_CONTENT, weight
RelativeLayoutRelativeLayout.LayoutParamsMATCH_PARENT, WRAP_CONTENT, addRule()
ConstraintLayoutConstraintLayout.LayoutParamsConstraintSet, percent, chain
FrameLayoutFrameLayout.LayoutParamsMATCH_PARENT, WRAP_CONTENT, gravity
GridLayoutGridLayout.LayoutParamsrowSpec, colSpec, Gravity

วิธีอื่นๆ

  • XML: กำหนด android:layout_width android: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 } }