Đối với các app Android khi load nhiều ảnh từ server thường hay bị đơ. Vậy đâu là giải pháp. Bingo có rồi đó là sử dụng thư viện Picasso. Tìm hiểu về Picasso ở link http://square.github.io/picasso/

1. Các ưu điểm của Picasso

Picasso có những ưu điểm sau:

  1. Đơn giản hóa code, chính là ưu điểm hàng dầu của Picasso, thay vì viết nhiều dòng bạn chỉ cần viết có 1 dòng là có thể load được ảnh
  2. Tối ưu hóa bộ nhớ sử dụng của ứng dụng
  3. Tự động sử dụng RAM cache và Disk cache để tối ưu hóa lưu lượng mạng và tăng tốc độ hiển thị ảnh
  4. Tự động transforms bitmap và cancel download ngữ cảnh. Bạn sẽ không cần phải chú ý đến transforms bitmap và download bị cancel hay không. Công việc này thư viện làm hết

2. Cách sử dụng Picasso

Việc sử dụng picasso được đơn giản hóa như là cách code của nó vậy

2.1. Thêm thư viện vào build.gradle

Bạn chỉ cần copy đoạn mã sau vào trong file build.gradle

dependencies {
    compile 'com.squareup.picasso:picasso:2.5.2'
}

2.2. Load ảnh từ internet vào view

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

Thật đơn giản, chỉ với 1 dòng code là ta đã có thể hiển thị ảnh lên view, nếu không sử dụng thư viện thì cần phải code nhiều. Sử dụng thư viện giúp tránh được bug phát sinh.

3. Các options của Picasso

3.1. Placeholder

Cho phép hiển thị mặc định ảnh nào đó trong quá trình chờ load image vào View, cái này giống như lúc thiết kế view hiển thị mình cho luôn ảnh mặc định sẽ hiển vào ImageView

Picasso.with(context)
    .load("http://i.imgur.com/DvpvklR.png")
    .placeholder(R.mipmap.ic_launcher)
    .into(imageView);

3.2. Error

Sẽ hiển thị bức ảnh khi việc load ảnh từ server không thể hoàn thành hoặc có lỗi xảy ra trong quá trình tải ảnh

Picasso.with(context)
    .load("http://i.imgur.com/DvpvklR.png")
    .placeholder(R.mipmap.ic_launcher)
    .error(R.drawable.error)
    .into(imageView);

3.3. RESOURCE LOADING

Load resource từ drawable Picasso.with(context).load(R.drawable.landing_screen).into(imageView1); Load resouce từ asset Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2); Load resource từ file Picasso.with(context).load(new File(...)).into(imageView3);

3.4 TRANSFORMATIONS

Bạn có thể chuyển đổi kích thước của ảnh để phù hợp với view hiển thị và bộ nhớ

Picasso.with(context)
  .load(url)
  .resize(50, 50)
  .centerCrop()
  .into(imageView)

Kết luận:

Với việc sử dụng thư viện Picasso từ này việc load ảnh với app Android trở nên dễ dàng hơn nhiều rồi. Chúc các bạn thành công

Viết câu trả lời

Drop Images

0 Bình luận