1. 程式人生 > >ScrollView中放ImageView在頂部和底部出現空白的解決方案

ScrollView中放ImageView在頂部和底部出現空白的解決方案

解決辦法:

設定ImageView的adjustViewBounds屬性為true

原因:

ImageView 的adjustViewBounds 屬性
取值為true時:Adjust the ImageView's bounds to preserve the aspect ration of its drawable.調整ImageView的界限來保持影象縱橫比不變。這並不意味著ImageView的縱橫比就一定和影象的縱橫比相同XML定義裡的android:adjustViewBounds="true"會將這個ImageView的scaleType設為fitCenter。不過這個fitCenter會被後面定義的scaleType屬性覆蓋(如果定義了的話),除非在Java程式碼裡再次顯示呼叫setAdjustViewBounds(true)。如果設定的layout_width與layout_height都是定值,那麼設定adjustViewBounds是沒有效果的,ImageView將始終是設定的定值的寬高。如果設定的layout_width與layout_height都是wrap_content,那麼設定adjustViewBounds是沒有意義的,因為ImageView將始終與圖片擁有相同的寬高比(但是並不是相同的寬高值,通常都會放大一些)。如果兩者中一個是定值,一個是wrap_content,比如layout_width="100px",layout_height="wrap_content"時,ImageView的寬將始終是100px,而高則分兩種情況:(1)當圖片的寬小於100px時,layout_height將與圖片的高相同,即圖片不會縮放,完整顯示在ImageView中,ImageView高度與圖片實際高度相同。圖片沒有佔滿ImageView,ImageView中有空白。(2)當圖片的寬大於等於100px時,此時ImageView將與圖片擁有相同的寬高比,因此ImageView的layout_height值為:100除以圖片的寬高比。比如圖片是500X500的,那麼layout_height是100。圖片將保持寬高比縮放,完整顯示在ImageView中,並且完全佔滿ImageView。