Android屏幕适配之百分比布局LinearLayout、RelativeLayout、FrameLayout
谷歌的百分比库已废弃,转用约束布局,本博文仅供参考思路。新方法请参考:https://blog.csdn.net/qq_21480607/article/details/98790567
一、首先说一下Google官方提供的百分比布局兼容库:
https://developer.android.google.cn/reference/android/support/percent/package-summary?hl=en#interfaces
Android Percent Support Library,目前它支持RelativeLayout和FrameLayout的百分比布局。
使用前添加依赖,定义在support中
implementation 'com.android.support:percent:xx.x.x'
目前最新版本为:implementation ‘com.android.support:percent:28.0.0’
查看网址:https://developer.android.google.cn/topic/libraries/support-library/revisions.html?hl=en
关于compile、implementation与api的区别请查看:https://blog.csdn.net/qq_21480607/article/details/98477660
由于百分比布局不是内置在系统SDK当中,所以要把完整的包路径写出来。同时要定义一个app的命名空间,这样才能使用百分比布局的自定义属性。
xmlns:app:"http://schemas.android.com/apk/res-auto”
之后就可以使用app:layout_widthPercent和layout_heightPercent属性了。
主要有以下属性
- app:layout_heightPercent:用百分比表示高度
- app:layout_widthPercent:用百分比表示宽度
- app:layout_marginPercent:用百分比表示View之间的间隔
- app:layout_marginLeftPercent:用百分比表示左边间隔
- app:layout_marginRight:用百分比表示右边间隔
- app:layout_marginTopPercent:用百分比表示顶部间隔
- app:layout_marginBottomPercent:用百分比表示底部间隔
- app:layout_marginStartPercent:用百分比表示距离第一个View之间的距离
- app:layout_marginEndPercent:用百分比表示距离最后一个View之间的距离
- app:layout_aspectRatio:用百分比表示View的宽高比
相关案例:
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto">
<TextViewandroid:layout_alignParentBottom="true"android:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#87CEFA"app:layout_heightPercent="100%"app:layout_marginPercent="4%"app:layout_widthPercent="10%"android:text="100%"android:gravity="center"/><TextViewandroid:layout_alignParentBottom="true"android:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView"android:background="#87CEFA"app:layout_heightPercent="80%"app:layout_marginPercent="4%"app:layout_widthPercent="10%"android:text="80%"android:gravity="center"/><TextViewandroid:layout_alignParentBottom="true"android:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView1"android:background="#87CEFA"app:layout_heightPercent="60%"app:layout_marginPercent="4%"app:layout_widthPercent="10%"android:text="60%"android:gravity="center"/><TextViewandroid:layout_alignParentBottom="true"android:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView2"android:background="#87CEFA"app:layout_heightPercent="40%"app:layout_marginPercent="4%"app:layout_widthPercent="10%"android:text="40%"android:gravity="center"/><TextViewandroid:layout_alignParentBottom="true"android:id="@+id/textView4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/textView3"android:background="#87CEFA"app:layout_heightPercent="20%"app:layout_marginPercent="4%"app:layout_widthPercent="10%"android:text="20%"android:gravity="center"/>
</android.support.percent.PercentRelativeLayout>
二、有大牛改写了官方库 添加了PercentLinearLayout
对于如何导入,也是相当的简单,android studio的用户,直接:
dependencies {//...compile 'com.zhy:percent-support-extends:1.0.1'
}
不需要导入官方的percent-support-lib了。
三个类分别为:
com.zhy.android.percent.support.PercentLinearLayout
com.zhy.android.percent.support.PercentRelativeLayout
com.zhy.android.percent.support.PercentFrameLayout
使用案例:
<?xml version="1.0" encoding="utf-8"?>
<com.zhy.android.percent.support.PercentLinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical">
<com.zhy.android.percent.support.PercentFrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#FF4082"><ImageViewandroid:layout_width="0dp"android:layout_height="0dp"android:src="@drawable/actbar_home_up_indicator"app:layout_heightPercent="6%"app:layout_widthPercent="15%"/><TextViewandroid:layout_alignParentTop="true"android:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@color/white"app:layout_marginTopPercent="1%"app:layout_marginBottomPercent="1%"app:layout_heightPercent="4%"app:layout_widthPercent="100%"android:autoSizeMaxTextSize="80dp"android:autoSizeMinTextSize="16dp"android:autoSizeTextType="uniform"android:text="我的好友"android:textSize="26dp"android:gravity="center"/><TextViewandroid:layout_alignParentTop="true"android:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@color/white"app:layout_marginTopPercent="2%"app:layout_marginBottomPercent="1%"app:layout_marginLeftPercent="80%"app:layout_heightPercent="3%"app:layout_widthPercent="100%"android:autoSizeMaxTextSize="80dp"android:autoSizeMinTextSize="16dp"android:autoSizeTextType="uniform"android:text="添加好友"android:textSize="26dp"/></com.zhy.android.percent.support.PercentFrameLayout>
</com.zhy.android.percent.support.PercentLinearLayout>
详细介绍请见博主博文:https://blog.csdn.net/lmj623565791/article/details/46767825
Android屏幕适配之百分比布局LinearLayout、RelativeLayout、FrameLayout相关推荐
- 屏幕适配和百分比布局
导包 compile 'com.android.support:percent:23.3.0' 在res文件下创建文件 它会自动根据你安装的手机屏幕进行选择适配 文件的名字可以随便起 lay ...
- android屏幕适配流程,Android屏幕适配姿势
GitHub地址 为什么要屏幕适配? device_framentation.png 统计 碎片化 品牌机型碎片化 屏幕尺寸碎片化 操作系统碎片化 为了保证用户获得一致的用户体验效果,使得某一元素在A ...
- Android 屏幕适配
一.适配方式之dp 名词解释 分辨率:480*800,1280*720.表示物理屏幕区域内像素点的总和.(切记:跟屏幕适配没有任何关系) 因为我们既可以把1280*720 的分辨率做到4.0 的手机上 ...
- Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
- Android屏幕适配全攻略(最权威的官方适配指导) (转)
招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
- 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)
来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...
- Android 系统(186)---最易懂的Android屏幕适配解决方案--总结版
最易懂的Android屏幕适配解决方案--总结版 本文参考自: Google的官方权威适配文档 郭霖:Android官方提供的支持不同屏幕大小的全部方法 Stormzhang:Android 屏幕适配 ...
- 2021年最详细的Android屏幕适配方案汇总
1 Android屏幕适配的度量单位和相关概念 建议在阅读本文章之前,可以先阅读快乐李同学写的文章<Android屏幕适配的度量单位和相关概念>,这篇文章包含了阅读本文的一些基础知识,推荐 ...
- Android屏幕适配全方位解析与指导
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
最新文章
- 可恶的爬虫直接把生产6台机器爬挂了!
- as3.0 删除子元件
- 转 .NET 2.0 SqlDependency快速上手指南
- Mybatis-plus之RowBounds实现分页查询
- X86汇编语言从实模式到保护模式06:从1加到100并显示结果
- 信息领域热词分析系统--python统计
- 用无线卡王蹭网的亲身经历和感想
- fshc模块fsch2mcu_if理解
- Android objdump/nm/readelf使用
- 如何实现降维处理(R语言)
- usb接口供电不足_分享电脑usb接口供电不足解决方法
- IDEA内无法进行复制粘贴
- uni-app项目(分类页)
- BMM 和 FMM 中文分词
- linux设备模型 —— sysfs
- 园区信息通信基础设施管理方案
- AlphaControls 控件 编辑皮肤 变更Glyphs控制符号
- 深圳大学算法实验一——排序算法性能分析
- LINUX之静态库共享库
- pip显示网络不可达错误解决
热门文章
- 自己实现一个Spring 框架
- c++ primer plus 6.11第四题 加入Benevolent Order of Programmer后,
- 一次重新的认识--第二次随笔
- 一个博士的深度调查:中国农村男青年“高价娶妻”研究
- linux我的世界乱码,我的世界附魔台文字翻译成普通文字 附魔台文字乱码解决办法...
- 算法导论--斐波那契堆
- spring-day02-IOC完成CRUD、注解开发IOC
- ant java /jre,关于java:Ant:找不到类:javac1.8
- Grammer -- 助动词
- Grammer - 被动语态