属性android:layout_gravity="clip_vertical|horizontal"
按照 SDK 文档中的说明执行以下操作:
可以设置为的附加选项 有顶部和/或底部边缘 孩子夹在容器上 界限。剪辑将基于 垂直重力:顶部重力会 夹住底部边缘,底部重力 将夹住顶边,而不是 将裁剪两条边。
但我在我的应用程序中看不到任何相关内容,
那么这个属性的目的究竟是什么?
感谢
答案 0 :(得分:20)
简短版本:
在呈现任何内容(例如BitmapDrawable中的图像)之前,clip_horizontal和clip_vertical适用于视图本身的测量值。
长版:
我在clip_horizontal和clip_vertical上遇到了类似的混淆。 (在我的例子中,它与android:gravity的BitmapDrawable相关,但它足够类似于适用。)
从文档中我认为位图上的android:gravity =“top | left | clip_vertical”会导致图像的左上角位于视图的左上角,如果位图更高比视图,它将被“剪切”在视图的底部边缘。换句话说,只显示视图足够高以显示的位图;不要拉伸位图,而是仅显示适合的任何内容,让其余部分延伸到底边下方。
然而,恰恰相反:当我设置clip_vertical时,一个大的位图被垂直压扁以适应视图的高度。
在检查了platform / frameworks / core / java / android / view / Gravity.java中的applyDisplay()方法后,我意识到自己的错误:
不是要剪裁的位图图像,而是视图 - 图像最终渲染到的容器的实际大小。< / p>
在我的情况下设置clip_vertical并不意味着“剪切底部边缘的图像”,这意味着“剪切BitmapDrawable的视图本身,使其高度与其父容器的高度匹配”......然后导致图像当它填满那么短的高度时,“被压扁”。
因此,重要的是要记住android:gravity和android:layout_gravity,在渲染任何内容(例如我的BitmapDrawable)之前,clip_horizontal和clip_vertical适用于视图本身的测量
答案 1 :(得分:0)
可能没有效果,因为horizontal
中未定义clip_vertical
。 {{1}}只是一个附加属性,除了基本属性外还可以使用。
答案 2 :(得分:0)
标记以沿水平轴将对象的边缘剪切到其容器中。