Android(安卓)ScrollView 中放入 ImageView 的出现上下空白
16lz
2021-01-24
最近在项目中遇到了ScrollView中嵌套ImageView,导致图片上下有空白
如图:
在网上找解决的办法,说在ImageView中设置
android:scaleType="fitXY" 这个属性,虽然解决了,但是又出现了一个新的问题 就是图片失针了,继续找,找到了这个属性 android: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。
更多相关文章
- Android(安卓)Manifest之元素中文注释
- 自定义控件:onDraw 方法实现仿 iOS 的开关效果
- Android更改Activity样式和隐藏标题
- android扁平化界面设计—在android中使用Font-Awesome
- 如何设置Android中TextView的行间距
- Android之三种实现自定义ProgressBar的方式
- 自定义Android注解Part3:绑定
- android binder机制之——(创建binder服务)
- Android(安卓)ListView从网络获取图片及文字显示