7. Android框架和工具之 android-percent-support-lib-sample(百分比支持)
1. android-percent-support-lib-sample介绍:
谷歌最新的百分比布局库的示例项目。其实LinearLayout的layout_weight也能实现百分比效果,不过这个更直接。
android-percent-support-lib-sample项目地址:
https://github.com/JulienGenoud/android-percent-support-lib-sample
简单效果:
复杂效果:
2. 百分比库使用Demo:
这里的Eclipse版本库代码(包含示例代码),我已经完整提交到Github。地址如下:
https://github.com/PocketBoy/Local/tree/master/Eclipse_android_percent_support
(1)点击上面的链接,下载库代码,解压,导入Eclipse之中:
(2)这里我们新建一个Android工程,命名位"PercentDemo",如下:
上面库文件需要引用android-support-v4.jar
(3)来到上面自定义属性文件attrs.xml,如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="PercentLayout_Layout">
<attr name="layout_widthPercent" format="string"/>
<attr name="layout_heightPercent" format="string"/>
<attr name="layout_marginPercent" format="string"/>
<attr name="layout_marginLeftPercent" format="string"/>
<attr name="layout_marginTopPercent" format="string"/>
<attr name="layout_marginRightPercent" format="string"/>
<attr name="layout_marginBottomPercent" format="string"/>
<attr name="layout_marginStartPercent" format="string"/>
<attr name="layout_marginEndPercent" format="string"/>
<attr name="layout_textSizePercent" format="string"/>
<attr name="layout_maxWidthPercent" format="string"/>
<attr name="layout_maxHeightPercent" format="string"/>
<attr name="layout_minWidthPercent" format="string"/>
<attr name="layout_minHeightPercent" format="string"/>
</declare-styleable>
</resources>
至于怎么使用自定义属性,请参照笔记:
(4)来到activity_main.xml布局文件之中:
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentLinearLayout xmlns: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="match_parent"
android:orientation="vertical" > <android.support.percent.PercentLinearLayout
xmlns: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="0dp"
app:layout_heightPercent="33.3%"
android:orientation="horizontal" > <View android:id="@+id/view_11"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="50%"
android:background="#ff44aacc" /> <View
android:id="@+id/view_12"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="50%"
android:background="#664466cc" />
</android.support.percent.PercentLinearLayout> <android.support.percent.PercentLinearLayout
xmlns: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="0dp"
app:layout_heightPercent="33.3%"
android:orientation="horizontal" > <View android:id="@+id/view_21"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="25%"
android:background="#ff44ffcc" /> <View
android:id="@+id/view_22"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="25%"
android:background="#8585855c" /> <View android:id="@+id/view_23"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="25%"
android:background="#ff444545" /> <View
android:id="@+id/view_24"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="25%"
android:background="#556ff776" />
</android.support.percent.PercentLinearLayout> <android.support.percent.PercentLinearLayout
xmlns: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="0dp"
app:layout_heightPercent="33.3%"
android:orientation="horizontal" > <View android:id="@+id/view_31"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="50%"
android:background="#ffffff00" /> <View
android:id="@+id/view_32"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_widthPercent="50%"
android:background="#ffff00ff" />
</android.support.percent.PercentLinearLayout> </android.support.percent.PercentLinearLayout>
布局效果如下:
(5)来到activity_main1.xml,如下:
<android.support.percent.PercentRelativeLayout
xmlns: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="match_parent"
android:background="@android:color/white" > <View
android:id="@+id/top_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
app:layout_heightPercent="20%"
app:layout_widthPercent="70%"
android:background="#ff44aacc" /> <View
android:id="@+id/top_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/top_left"
app:layout_heightPercent="20%"
app:layout_widthPercent="30%"
android:background="#ffe40000" /> <android.support.percent.PercentFrameLayout
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@+id/top_left"
android:layout_gravity="center"
app:layout_heightPercent="80%"
android:background="#ff00ff22" > <android.support.percent.PercentLinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
app:layout_heightPercent="100%"
app:layout_marginTopPercent="10%"
android:background="@android:color/white"
android:orientation="vertical"
>
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_heightPercent="30%"
app:layout_widthPercent="10%"
android:background="#ff44ccdd" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_heightPercent="30%"
app:layout_widthPercent="90%"
android:background="#ffe400dd" />
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_heightPercent="20%"
app:layout_widthPercent="90%"
android:background="#ccc"
android:text="margin 15% of w"
app:layout_marginPercent="5%h"
/>
</android.support.percent.PercentLinearLayout>
</android.support.percent.PercentFrameLayout> </android.support.percent.PercentRelativeLayout>
布局效果如下:
(6)activity_main2.xml,如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentFrameLayout
xmlns: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="match_parent"
android:orientation="vertical"> <android.support.percent.PercentFrameLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="center"
android:background="#ff44aacc"
app:layout_heightPercent="50%w"
app:layout_widthPercent="50%w"> <android.support.percent.PercentFrameLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="center"
android:background="#ffcc5ec7"
app:layout_heightPercent="50%w"
app:layout_widthPercent="50%w"> <TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="#ff7ecc16"
android:gravity="center"
android:text="margin 15% of w"
app:layout_marginPercent="15%w"
/> </android.support.percent.PercentFrameLayout> </android.support.percent.PercentFrameLayout> <TextView android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="bottom|right"
android:background="#44ff0000"
android:gravity="center"
android:text="15%w,15%w"
app:layout_heightPercent="15%w"
app:layout_marginPercent="5%w"
app:layout_widthPercent="15%w"/> </android.support.percent.PercentFrameLayout>
布局效果如下:
7. Android框架和工具之 android-percent-support-lib-sample(百分比支持)的更多相关文章
- 13. Android框架和工具之 Android Drawable Factory
1. AndroidDrawableFactory 一个生成Android应用所需尺寸图片的工具. 托管在Github之中: https://github.com/tizionario/Android ...
- 3. Android框架和工具之 xUtils(DbUtils )
1. xUtils简介 xUtils 包含了很多实用的android工具.xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓 ...
- 3. Android框架和工具之 xUtils(BitmapUtils)
1. BitmapUtils 作用: 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象: 支持加载网络图片和本地图片: 内存管理使用 ...
- 3. Android框架和工具之 xUtils(HttpUtils)
1. HttpUtils 作用: 支持同步,异步方式的请求: 支持大文件上传,上传大文件不会oom: 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD请求: 下载支持301/3 ...
- 10. Android框架和工具之 AppMsg(消息提示)
1. AppMsg 优雅的弹出类似Toast的消息提示,支持3种状态Alert(警告),Confirm(确认)以及Info(消息). 2. AppMsg使用: (1)AppMsg下载地址 ...
- 5. Android框架和工具之 ZXing(二维码)
Android进阶笔记06:Android 实现扫描二维码实现网页登录
- 3. Android框架和工具之 xUtils(ViewUtils )
1. ViewUtils 作用: 完全注解方式就可以进行UI绑定和事件绑定. 无需findViewById和setClickListener等. 2. UI绑定 和 事件绑定 (1)UI绑定 下面我們 ...
- Android框架式编程之Android Architecture Components
1. 当前Android开发面临的问题 Android开发不同于传统的桌面程序开发,桌面程序一般都有唯一的快捷方式入口,并且常作为单进程存在:而一个典型的Android应用通常由多个应用组件构成,包括 ...
- 6. Android框架和工具之 JSON解析
Android进阶笔记17:3种JSON解析工具(org.json.fastjson.gson)
随机推荐
- POJ 2888 Magic Bracelet(Burnside引理,矩阵优化)
Magic Bracelet Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 3731 Accepted: 1227 D ...
- 微软IOC容器Unity简单代码示例2-配置文件方式
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } n ...
- AutoCAD.NET关于Hatch填充
使用Hatch时尤其要注意其参数设置顺序,顺序不对的话,填充出来的效果可能和想象中的不一样,一般来说大多数的属性参数设置都要放在SetHatchPattern方法之前,比如进行“用户定义”填充时: h ...
- WebSphere 集群环境下配置 Quartz集群
转载:http://hyamine.iteye.com/blog/397708 1. websphere工作管理器引用 WEB-INF/ibm-web-bnd.xmi <?xml version ...
- 关于favicon.ico的使用
http://www.cnblogs.com/LoveJenny/archive/2012/05/22/2512683.html
- document.getElementById和document.querySelector的区别
zepto中的$(".111")出错,jQuery中$(".111")不出错的原因: zepto用document.querySelector实现,jQuery ...
- 5.迪米特法则(Law Of Demeter)
1.定义 狭义的迪米特法则定义:也叫最少知识原则(LKP,Least Knowledge Principle).如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中的一个类需要 ...
- cocos2d-x (Android)之-那些常见的error记
转自:http://blog.csdn.net/callchunli/article/details/8929813 (2013/9/2) build.xml:939: java.lang.Array ...
- html的下拉框的几个基本使用方法
尽管使用EXT开发了一段时间,可是自己认为我对javascript还是不是非常熟,所以边看书边做小样例 给自己以后用到的时候查看下,都是非常主要的东西,对刚開始学习的人可能有点帮助 以下是代码 < ...
- CSS3+Js制作的一款响应式导航条
今天制作了一个响应式导航条,能够自动随着不同的屏幕分辨率或浏览器窗口大小的不同而改变导航条的样式,这里主要用到的就是CSS3的Media Query.具体可以查看浅谈响应式布局这篇文章,这里就不花费大 ...