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_horizontal和clip_vertical应用于视图本身的度量.
长版本:
我在clip_horizontal和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_horizontal和clip_vertical应用于视图本身的测量,在任何内容(如我的BitmapDrawable)呈现之前.
原文地址:https://www.jb51.cc/android/312041.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。