今天在公司项目开发中遇到了这种需求,就是图片的高度(宽度)可能是固定的,但相对的,宽度(高度)可能不需要固定,相对于父 View 在特定方向居中显示就行。
对于一个 ImageView,所谓“高度固定,宽度自适应”在这里是指这个 ImageView 的高度取我们预设好的一个固定值,待展示图像要铺满 ImageView 的高度(这点很重要!也是最不容易满足的一点需求!),ImageView 的宽度随图像比例自适应,即在不超出屏幕物理显示范围的前提下根据待展示图像的长宽比和自身高度来确定自身宽度。
废话不多说,直接给出方法:
重点看这两行代码:
单纯设置 ImageView 的 scaleType 为 fitXY总免不了图像会被拉伸,使原本的长宽比被破坏。而设置 adjustViewBounds 为 true 则可以使 ImageView 在展示待展示图像时保持待展示图像的长宽比。
所以,只需这两行代码搭配就能完美满足我们的上述需求。
最后特别注意这个 ImageView 的宽高设置,宽和高哪个是自适应的,就把哪一个设置为wrap_content.
特此记录一下,以备在以后需要时使用.