Tôi cần đổi kích thước ImageView sao cho phù hợp với màn hình, duy trì cùng tỷ lệ khung hình. Các điều kiện sau giữ:Thay đổi kích thước ImageView để vừa với tỷ lệ khung hình
- hình ảnh là một chiều rộng cố định (kích thước chiều rộng của màn hình)
- hình ảnh được tải xuống từ Internet, tức là kích thước chỉ có thể được xác định sau tỷ lệ
- Aspect cho mỗi hình ảnh sẽ thay đổi; một số là cao, một số là hình vuông, một số là phẳng
- ImageView của chiều cao cần phải thay đổi, hoặc là lớn hơn hoặc nhỏ hơn dựa trên tỷ lệ khía cạnh của
- chiều cao dư thừa được cắt, không thể có rất nhiều không gian trống như nó là theo mặc định.
Ví dụ: hình ảnh 50x50 nhỏ trên màn hình chiều rộng 400 px sẽ chia tỷ lệ hình ảnh lên đến 400x400 pixel. Hình ảnh 800x200 sẽ có kích thước 400x100.
Tôi đã xem hầu hết các chủ đề khác và nhiều giải pháp được đề xuất như chỉ cần thay đổi adjustViewBounds
và scaleType
sẽ chỉ giảm kích thước hình ảnh và không mở rộng quy mô.
+1, đẹp và đơn giản, duy nhất tôi sẽ bảo vệ nó chống lại 'getIntrinsicWidth' là 0 (nó sẽ sụp đổ cố gắng để phân chia bởi nó) –
adjustViewBounds cũng nên được thực hiện trong AspectRatioImageView http://developer.android.com/reference/android/widget/ImageView.html#setAdjustViewBounds%28boolean%29 – Nepster