June 11, 2017

Sau đây tôi sẽ hướng dẫn các bạn sử dụng thư viện Picasso để load ảnh từ internet trong lập trình android. Picasso là một thư viện mã nguồn mở được sử dụng rộng rãi trong android. Nó được tạo ra bởi Square. Picasso là một trong những thư viện mạnh mẽ nhất trong việc download và cache ảnh cho android.

Tạo sao phải sử dụng Picasso

Nó đơn giản hoá quá trình tải hình ảnh từ url bên ngoài và hiển thị trên ứng dụng của bạn. Ví dụ, tải hình ảnh từ máy chủ, là một trong những nhiệm vụ phổ biến nhất trong bất kỳ ứng dụng. Và nó cần khá nhiều dòng code phức tạp để làm được điều này. Bằng cách sử dụng Picasso, bạn có thể đạt được điều này với vài dòng mã.

Nó không phải liên tục tải lại hình ảnh từ internet. Picasso cung cấp một bộ nhớ đệm để lưu cache những hình ảnh đã tải trước đó, điều này giúp tăng trải nghiệm người dùng hơn

Sử dụng thư viện Picasso:

Đầu tiên các bạn tải file JAR thư viện Picasso nếu bạn chưa có nó. Nếu bạn đang sử dụng Eclipse là IDE thì bạn cần phải sao chép tập tin picasso-2.x.x.jar vào thư mục lib trong ứng dụng của bạn. Nếu bạn đang sử dụng Android studio bạn chỉ việc import thư hiện Picasso vào tập tin build.gradle của Module:app

compile 'com.squareup.picasso:picasso:2.5.2'

Load hình ảnh từ URL vào ImageView

Sau đây là một ví dụ trong việc sử dụng thư viện Picasso để load hình ảnh từ URL và gán cho ImageView

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">
</ImageView>

Cấp quyền truy cập internet cho ứng dụng

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

Bây giờ tiến hành load hình ảnh và gán cho ImageView

//Initialize ImageView
ImageView imageView = (ImageView) findViewById(R.id.imageView);
//Loading image from below url into imageView
Picasso.with(this)
   .load("Dán link hình ảnh vào đây")
   .into(imageView);

Placeholder và Error Fallback

Trong đoạn code trên, chúng ta chỉ cần tải hình ảnh về và hiển thị lên ImageView. Nhưng điều đó là không đủ. Đối với bất kỳ ứng dụng thời gian thực nào bạn phải suy nghĩ tất cả các trường hợp có thể xảy ra. Bây giờ chúng ta cần phải có Placeholder và Error Fallback.

Hình ảnh cho Placeholder sẽ hiển thị trước khi hình ảnh được tải.
Hình ảnh Error Fallback sẽ được hiển thị nếu có lỗi trong quá trình tải ảnh.

Picasso.with(this)
    .load("YOUR IMAGE URL HERE")
    .placeholder(R.drawable.ic_placeholder) // optional
    .error(R.drawable.ic_error_fallback)         // optional
    .into(imageView);

Chúc các bạn thành công!

Recent posts

Apple tăng gấp đôi tuổi thọ pin cho iPhone 15 nhờ iOS 17.4

Apple tăng gấp đôi tuổi thọ pin cho iPhone 15 nhờ iOS 17.4

Tuổi thọ pin iPhone được xác định thông qua chu kỳ sạc/xả, với con số 500 để về 80%. Tuy […]

Rối loạn về tin đồn iPhone màn hình gập của Apple

Rối loạn về tin đồn iPhone màn hình gập của Apple

Báo cáo mới nhất cho hay, Apple vẫn chưa từ bỏ iPhone màn hình gập nhưng cũng không gấp gáp […]

Nhiều mẫu iPhone cũ ‘gặp nguy’, người dùng nên chuẩn bị tâm lý mua máy mới

Nhiều mẫu iPhone cũ ‘gặp nguy’, người dùng nên chuẩn bị tâm lý mua máy mới

Một rò rỉ mới cho biết phiên bản cập nhật iOS 18 mà Apple phát hành vào mùa thu 2024 […]

Apple tăng gấp đôi tuổi thọ pin cho iPhone 15 nhờ iOS 17.4

Apple tăng gấp đôi tuổi thọ pin cho iPhone 15 nhờ iOS 17.4

Tuổi thọ pin iPhone được xác định thông qua chu kỳ sạc/xả, với con số 500 để về 80%. Tuy […]

TikTok thách thức công cụ tìm kiếm của Google

TikTok thách thức công cụ tìm kiếm của Google

TikTok đã trở thành công cụ tìm kiếm ngày càng phổ biến trong giới trẻ ở Mỹ. Một cuộc khảo […]

© 2021 Tạp Chí CNTT. Mr Hoang