微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是android:layout_gravity =“clip_vertical”

属性 android:layout_gravity =“clip_vertical | horizo​​ntal”执行sdk文档中提到的以下内容

Additional option that can be set to
have the top and/or bottom edges of
the child clipped to its container’s
bounds. The clip will be based on the
vertical gravity: a top gravity will
clip the bottom edge,a bottom gravity
will clip the top edge,and neither
will clip both edges.

但我的应用程序中看不到任何内容

那么这个属性的目的是什么呢?

谢谢

解决方法

简短版本:

在渲染任何内容(例如BitmapDrawable中的图像)之前,clip_horizo​​ntal和clip_vertical应用于视图本身的度量.

长版本:

我在clip_horizo​​ntal和clip_vertical中遇到了类似的混乱. (在我的情况下,它是与Android的重力相关的BitmapDrawable,但它是足够相似的适用.)

从文档中我觉得像位图之类的东西就像是android:gravity =“top | left | clip_vertical”,会导致图像的左上角位于视图的左上角,如果位图比视图高,它将被“剪切”在视图的底部边缘.换句话说,只显示视图足够高以显示的位图;不要拉伸位图,而是只显示任何适合的位置,让其余的延伸到底边.

然而,恰恰相反,当我设置clip_vertical时,一个大的位图被垂直压缩以适应视图的高度.

在平台/ frameworks / core / java / android / view / Gravity.java中检查了applydisplay()方法后,我意识到我的错误

它不是要被剪切的位图图像,而是视图 – 图像最终呈现的容器的实际大小.

在我的情况下设置clip_vertical并不意味着“将图像剪切在底部边缘”,这意味着“剪切BitmapDrawable的视图本身,因此它的高度与其父容器的高度相匹配”,然后导致图像被“压缩” “因为它填满了较短的高度.

所以,重要的事情要记住与android:gravity和android:layout_gravity是clip_horizo​​ntal和clip_vertical应用于视图本身的测量,在任何内容(如我的BitmapDrawable)呈现之前.

原文地址:https://www.jb51.cc/android/312041.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐