Yêu cầu thg 8 22, 2018 4:03 SA 128 0 3
  • 128 0 3
0

Picasso Trong Android

Chia sẻ
  • 128 0 3

Mọi người cho mình hỏi chút vì sao ảnh mình tải url về là đúng theo chiều của ảnh. Mà khi fungf Picasso để hiển thị trên Imageview thì lại bị xoay ngang ảnh, không hiển thị đúng chiều ảnh của url vậy mọi người.

3 CÂU TRẢ LỜI


Đã trả lời thg 8 22, 2018 4:18 SA
Đã được chấp nhận
+2

Kiểm tra EXIF data nằm trong file image bạn tải về xem sao, thuộc tính Orientation bằng 0 hay khác 0, xoay ngang ảnh thì có thể là 90 hoặc 270. Vì picasso khi load ảnh sẽ sử dụng thuộc tính này để rotate theo chiều ảnh chỉ định. Lỗi này chắc do bạn lấy ảnh từ camera, không xử lý rotate mà up lên server luôn.

Thử dòng này với picasso:

 Picasso.with(MainActivity.this)
    .load(imageURL) // image url
    .rotate(90)                    //nếu muốn xoay 90 độ
    .into(imageview)
    });
Chia sẻ
thg 8 22, 2018 4:19 SA

cảm ơn bạn. Mình sẽ thử

Đã trả lời thg 8 22, 2018 4:09 SA
+2

Bởi vì EXIF data của ảnh trả về có orientation là xoay 90 độ chẳng hạn thì Picasso sẽ tự xoay ảnh nhé bạn. Bạn có thể dùng hàm rotate() của Picasso để hiển thị đúng chiều ảnh.

Chia sẻ
thg 8 22, 2018 4:17 SA

Cảm ơn bạn nhiều 😃

Đã trả lời thg 8 22, 2018 4:07 SA
+1

Có thể bạn đang fix width với height của ImageView theo kiểu ("match_parent") nên bị trường hợp không hiển thị đúng chiều ảnh. Bạn thử để width và height "wrap_content". Xem ảnh có về đúng chiều không.

Chia sẻ
thg 8 22, 2018 4:17 SA

Mình đang set cứng with và height của ImageView bạn.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí