Sử Dụng Thư Viện Glide Trên Android
Có thể bạn quan tâm
Khóa học đã chọn
Home- Lịch khai giảng
-
Ngày 01-12-2025
Tin học văn phòng -
Ngày 01-12-2025
DevOps Engineer -
Ngày 01-12-2025
Data Analysis -
Ngày 01-12-2025
Chuyên đề AI và Ứng dụng -
Ngày 01-12-2025
SysOps Mastery -
Ngày 01-12-2025
Khoa học Dữ liệu & AI (No-Code Platforms) -
Ngày 01-12-2025
Tin học Quốc tế -
Ngày 01-12-2025
Lập trình & CSDL
-
Ngày 01-12-2025
Data Science & Machine Learning -
Ngày 01-12-2025
Kiểm thử phần mềm -
Ngày 01-12-2025
Internet Marketing -
Ngày 01-12-2025
Đồ hoạ đa truyền thông -
Ngày 01-12-2025
Thiết kế website -
Ngày 01-12-2025
Mạng máy tính -
Ngày 01-12-2025
Khóa học cho Thiếu niên
-
- Dịch vụ
- Tin tức
- Hướng dẫn thanh toán
- Liên hệ
ngày 15-06-2022
Glide là một trong những thư viện được khuyên dùng nhiều nhất trên Android. Glide được sử dụng để tải hình ảnh từ Internet về ứng dụng Android và hiển thị lên ImageView. Ngoài tính năng chính này, thì Glide còn có nhiều tính năng rất thú vị khác mà có thể bạn chưa biết tới như biến đổi hình ảnh (center crop, circle crop…), tải ảnh động (GIF). Nhắc đến các thư viện tải hình ảnh trên Android, người ta sẽ nghĩ ngay đến thư viện Glide và Picasso, hoặc những thư viện mới ra đời hơn như Fresco, Coil. So với các thư viện khác thì Glide có kích thước gói phần mềm lớn, nhưng lại có những ưu điểm như dễ sử dụng, kích thước các tập tin cache nhỏ, hỗ trợ ảnh GIF, tải nhanh các hình ảnh lớn từ Internet về cho ListView, UI không bị treo (freeze)... Các thư viện khác cũng có tính năng tương tự, nhưng lại có một số hạn chế như: Fresco có kích thước thư viện rất lớn, kích thước tập tin cache lớn; Picasso tải chậm các hình ảnh lớn từ Internet về ListView, không hỗ trợ ảnh GIF. Coil là một thư viện rất mới và cần thời gian để kiểm chứng. Ngoài ra, Glide là một thư viện được Google khuyên dùng, nên trong bài viết này, chúng ta sẽ cùng tìm hiểu về Glide nhé. Trong minh hoạ sau đây (ứng dụng My Instagram), Glide được sử dụng để tải về và hiển thị các hình ảnh lên một RecyclerView gồm 3 cột (Photo Gallery), với biến đổi center crop; tải về, biến đổi hình ảnh thành một hình tròn (circle crop) và hiển thị lên ImageView hình ảnh đại diện (Profile Picture); tải ảnh động (GIF).
Để thực hiện các minh hoạ này, các bạn tải về source code project-start và thực hiện các bước tiếp theo sau đây để có được sản phẩm hoàn thiện project-final (được cung cấp trong glide_demo.zip): Bước 1: Cấu hình Permission và Dependencies
Để Glide có thể tải hình ảnh từ một URL, bạn cần chắc chắn đã thêm permission “INTERNET” vào file AndroidManifest.xml. Đây là một lỗi phổ biến mà ngay cả một lập trình viên có kinh nghiệm cũng gặp phải và có thể mất hàng giờ để debug. Mở file AndroidManifest.xml và thêm vào thẻ <uses-permission>, bên trên thẻ <application>:Bước 2: Nguồn hình ảnh
Nguồn hình ảnh trong bài viết này được lấy từ https://source.unsplash.com/random. Có thể kèm theo tham số URL là ?w= để có được hình ảnh với kích thước mong muốn, ví dụ: https://source.unsplash.com/random?w=200Bước 3: Tải về các hình ảnh cho Photo Gallery
Mở file PhotoAdapter.java của project-start, đây là một RecyclerView Adapter, sử dụng phương thức onBindViewHolder() để gán dữ liệu cho PhotoViewHolder. Trong class PhotoViewHolder, phương thức bind() được sử dụng để hiển thị hình ảnh với URL tương ứng.
// 5 – Thiết lập hình ảnh chờ (placeholder) sẽ được hiển thị trước khi Glide tải hình ảnh thật sự về và hiển thị lên ImageView
// 6 – Thiết lập hình ảnh lỗi (error placeholder) sẽ được hiển thị lên ImageView nếu Glide không load được hình ảnh (ví dụ: URL sai, hình ảnh không tồn tại)
// 7 – Thiết lập hình ảnh fallback sẽ được hiển thị lên ImageView nếu URL là null
// 8 – Hiển thị hình ảnh vào ImageView nào. Trong project này, một cell của RecyclerView chỉ có một ImageView Bước 4: Tải về hình ảnh đại diện (Profile Picture)
Mở MainActivity.java, phương thức loadProfilePic() sẽ thực hiện tải về hình ảnh từ URL https://source.unsplash.com/random, biến đổi hình ảnh thành hình tròn (circle crop) và hiển thị lên ImageView (ivProfile).Một số tính năng thông dụng của Glide
Hiển thị ảnh động GIF Với ảnh động GIF, Glide tự động xử lý và hiển thị ảnh này, nên bạn không cần lưu ý gì khi sử dụng, chỉ cần cung cấp URL của ảnh động, Glide sẽ làm phần việc còn lại cho bạn.
Hiệu ứng blur Hãy tưởng tượng bạn đang nhìn cảnh vật bên ngoài qua một cửa sổ kính khi trời mưa, hình ảnh dường như nhoè đi, đó chính là minh hoạ cho hiệu ứng Blur.
Kết hợp nhiều biến đổi, hiệu ứng Glide cũng cho phép kết hợp các biến đổi và hiệu ứng với nhau, đoạn code sau thực hiện biến đổi CenterCrop kết hợp với hiệu ứng Blur.
Một lưu ý trong quá trình sử dụng Glide là vấn đề xử lý cache. Nếu bạn muốn một hình ảnh đã tải trong quá trình sử dụng app, được lưu lại và không cần tải lại từ Internet khi gặp hình ảnh đó một lần nữa, tăng hiệu năng của ứng dụng, hãy lưu ý đến tính năng cache. - Có 2 loại cache: memory và disk. Memory cache giúp lưu hình ảnh ở RAM, ứng dụng thoát thì hình ảnh mất theo. Disk cache sẽ lưu hình ảnh ở bộ nhớ cache của ứng dụng, dù thoát ứng dụng đi thì khi mở lại vẫn có thể nạp hình ảnh từ disk cache.
- Mặc định Glide cache hình ảnh trong memory và disk với URL được dùng làm key. Nên trong trường hợp của profile image ở minh hoạ trên, nếu Glide tải về hình ảnh với URL là: https://source.unsplash.com/image_1.jpg, tức là một hình ảnh cụ thể, bạn có thể cache hình ảnh đó ở memory hay disk. Tuy nhiên, các hình ảnh này lại là ngẫu nhiên khi URL là https://source.unsplash.com/random. Do vậy, Glide sẽ cache hình ảnh random đầu tiên ứng với URL này, nên các lần tiếp theo dù hình ảnh có thay đổi nhưng Glide sẽ hiển thị hình ảnh đầu tiên từ cache lên ImageView. Minh hoạ trên bỏ qua việc cache hình ảnh ở cả memory skipMemoryCache(true) và disk diskCacheStrategy(DiskCacheStrategy.NONE).
- Trong một số trường hợp, bạn có thể chủ động xoá cache. Ví dụ như bạn cần debug, hay một lý do khác là cho phép người dùng chủ động xoá bớt không gian đĩa, thì có thể sử dụng đoạn code mẫu sau:
- Glide.get(context).clearMemory(); Lưu ý rằng chỉ có thể gọi phương thức này từ main thread (UI thread).
- Glide.get(this).clearDiskCache(); Phương thức này chỉ có thể được gọi từ background thread, do đó bạn có thể gọi nó theo cách đơn giản sau:
Tin liên quan


Trung Tâm Tin Học
Trung Tâm Tin Học Chào mừng bạn đến với Trung Tâm Tin Học. Bạn đang cần hỗ trợ thông tin gì ạ? Hãy Chat ngay với chúng tôi nhé. Tiếp tục chat Đăng ký Online
Từ khóa » Thư Viện Picasso
-
Sử Dụng Thư Viện Picasso Trong ứng Dụng Android - Viblo
-
Sử Dụng Thư Viện Picasso để Load ảnh Trong Android - Viblo
-
Sử Dụng Picasso để Load ảnh Trong Android - Hoclaptrinh
-
Load ảnh Từ Internet Với Thư Viện Picasso
-
Demo Load Hình Dùng Thư Viện Picasso - GitHub
-
Sử Dụng Thư Viện Load ảnh Picasso Trong Lập Trình Android - DROID9X
-
ANdroid Recycleview Sử Dụng Thư Viện Picasso Trong Android
-
Thư Viện Picasso, Android: Sử Dụng Trình Xử Lý Lỗi
-
Android SDK: Làm Việc Với Picasso - Code Tutsplus
-
[Android] So Sánh ưu, Nhược điểm Của 2 Thư Viện Load ảnh Glide Và ...
-
Picasso - Square Open Source
-
[Android] Load ảnh Với Thư Viện Picasso | That2U
-
Top 4 Thư Viện Image Loading Android Tốt Nhất - VNTALKING