栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用ConstraintLayout实现自定义缩放布局(百分比布局)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用ConstraintLayout实现自定义缩放布局(百分比布局)

一个复杂的布局或自定义View如何在添加到其他不同大小的ViewGroup中按比例去缩放自己的布局内容呢?我尝试使用ConstraintLayout解决了这个问题。

1. 简单的布局

大家先看一个简单的布局,由上下两个view组成,都是16:9的比例。

左边是设置android:layout_width="match_parent"的情况,右边是将layout_width设为了200dp,模拟缩小到宽为200dp的View。大家可以发现的是他们实现等比缩小了。实现原理也很简单,就是通过ConstraintLayout将View按照比例去控制大小就好。
核心代码就是下面几行,设置width、height为0dp,app:layout_constraintDimensionRatio设置比例

  

完整代码:





    


    
    


2. 稍微复杂点的布局

刚刚很简单的就做到了两个ImageView随viewgroup进行缩放,但需要满足其中一个条件不知道大家发现没有,width或者height需要有一个layout_width="0dp",那如果我们的子view不需要match_parent呢?比如需要在布局中间位置加一个40*40大小的头像,总不能也设置成layout_width="0dp"吧。这时候就需要guideline的帮助了。先给大家看下效果。

可以看到底下的的布局照常保持16:9,头像部分也按比例进行了缩小。核心思想就是用guideline去限制View的大小,可以将guideline理解成想parent的边一样,那只要用三条guideline,把View的top、right、left各自约束到guideline就行了,记得guideline的约束要用百分比哦。





    


        

        

        

        
    


    


如果大家有更好的方法,欢迎指教。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号