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

วิธีใช้ Glide ดาวน์โหลดรูปภาพเป็น Bitmap ใน Android ด้วย Kotlin

บทนำ

ตัวอย่างนี้สาธิตการใช้ไลบรารี Glide (ยอดนิยมสำหรับโหลดรูปภาพ) เพื่อดาวน์โหลดรูปจาก URL แล้วแปลงเป็น Bitmap โดยตรงใน Kotlin

ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่

สร้างโปรเจกต์ใหม่ใน Android Studio

ขั้นตอนที่ 2: เพิ่ม Dependency Glide

ใน build.gradle (Module: app) เพิ่ม:

dependencies {
    implementation "com.github.bumptech.glide:glide:4.16.0"
    annotationProcessor "com.github.bumptech.glide:compiler:4.16.0"
}

คลิก Sync Now

ขั้นตอนที่ 3: Layout (activity_main.xml)

เพิ่มโค้ดใน res/layout/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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

ขั้นตอนที่ 4: MainActivity.kt

เพิ่มโค้ดใน src/MainActivity.kt:

import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.os.Bundle
import android.widget.ImageView
import androidx.annotation.Nullable
import androidx.appcompat.app.AppCompatActivity
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition

class MainActivity : AppCompatActivity() {
    lateinit var imageView: ImageView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        imageView = findViewById(R.id.imageView)

        Glide.with(this)
            .asBitmap()
            .load("https://www.google.es/images/srpr/logo11w.png")
            .into(object : CustomTarget<Bitmap?>() {
                override fun onResourceReady(resource: Bitmap, @Nullable transition: Transition<in Bitmap?>?) {
                    imageView.setImageBitmap(resource)
                }

                override fun onLoadCleared(@Nullable placeholder: Drawable?) {
                    // ทำความสะอาดเมื่อโหลดใหม่หรือล้าง
                }
            })
    }
}

ขั้นตอนที่ 5: AndroidManifest.xml

เพิ่ม Permission อินเทอร์เน็ต:

<uses-permission android:name="android.permission.INTERNET" />

การทดสอบ

รันแอป จะโหลดโลโก้ Google จาก URL แสดงใน ImageView ผ่าน Glide

วิธีใช้ Glide ดาวน์โหลดรูปภาพเป็น Bitmap ใน Android ด้วย Kotlin

ข้อดีของ Glide: จัดการ Caching, Memory, Lifecycle อัตโนมัติ รองรับ GIF, Thumbnail, Transformation และแปลงเป็น Bitmap ได้ง่ายกว่าเขียน AsyncTask เองมาก