Đố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/
Picasso có những ưu điểm sau:
Việc sử dụng picasso được đơn giản hóa như là cách code của nó vậy
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'
}
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.
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);
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);
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);
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
Unpublished comment
Viết câu trả lời