Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách dùng Glide tải ảnh về Bitmap trong Android bằng Kotlin

Ví dụ này minh họa cách sử dụng Glide để tải ảnh và chuyển thành Bitmap trong Android bằng Kotlin.

Bước 1: Tạo dự án mới

Trong Android Studio, chọn File → New Project và điền đầy đủ thông tin để tạo dự án mới.

Bước 2: Thêm dependency Glide

Trong build.gradle (Module: app), thêm:

dependencies {
    implementation "com.github.bumptech.glide:glide:4.16.0"
    annotationProcessor "com.github.bumptech.glide:compiler:4.16.0"
    // Hoặc dùng KSP cho Kotlin:
    // ksp "com.github.bumptech.glide:compiler:4.16.0"
}

Nhấn Sync Now.

Bước 3: Cấu hình layout chính (activity_main.xml)

Thêm mã sau vào 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>

Bước 4: Viết mã MainActivity.kt

Thêm mã sau vào 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?) {}
            })
    }
}

Bước 5: Cấu hình AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                
                
            </intent-filter>
        </activity>
    </application>
</manifest>

Chạy ứng dụng

Kết nối thiết bị Android thực với máy tính. Từ Android Studio, mở file activity và nhấn biểu tượng Run trên thanh công cụ. Chọn thiết bị di động và kiểm tra màn hình hiển thị.

Mẹo nâng cao:

  • Dùng .apply(RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL)) để cache ảnh.
  • Dùng .placeholder(R.drawable.placeholder) và .error(R.drawable.error) cho UX tốt hơn.
  • Nếu chỉ cần hiển thị lên ImageView (không cần Bitmap object), dùng Glide.with(this).load(url).into(imageView) đơn giản hơn.
  • Glide 4.x yêu cầu Java 8 - đảm bảo compileOptions { sourceCompatibility JavaVersion.VERSION_1_8; targetCompatibility JavaVersion.VERSION_1_8 } trong build.gradle.