Android 百分比布局
来源:互联网 发布:宁波电话会议软件 编辑:程序博客网 时间:2024/05/20 03:39
1.首先导入相应的库。
2.库中提供了PercentRelativeLayout和PercentFrameLayout2中布局
- heightPercent:百分比表示高度
- widthPercent:百分比表示宽度
- marginBottomPercent:百分比表示底部的间隔
- marginEndPercent:百分比表示距离最后一个View之间的间隔
- marginLeftPercent:百分比表示左边的间隔
- marginPercent:百分比表示View之间的间隔
- marginRightPercent:百分比表示右边的间隔
- marginStartPercent:百分比表示距离第一个View之间的间隔
- marginTopPercent:百分比表示顶部的间隔
3.<android.support.percent.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.tcl.navigator.myapplication.MainActivity">
<TextView
android:id="@+id/tv"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/darker_gray"
android:text="heightPercent30%_widthPercent50%"
app:layout_heightPercent="30%"
app:layout_widthPercent="50%"/>
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_toRightOf="@id/tv"
android:background="@android:color/holo_blue_light"
android:text="heightPercent40%_widthPercent50%"
app:layout_heightPercent="40%"
app:layout_widthPercent="50%"/>
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_below="@id/tv"
android:background="@android:color/holo_green_dark"
android:text="heightPercent10%_widthPercent50%"
app:layout_heightPercent="10%"
app:layout_widthPercent="50%"/>
</android.support.percent.PercentRelativeLayout>
4.运行效果
5.Goggle没有提供PercentLinearLayout,但是我们可以根据PercentLayoutHelper自定义一个PercentLinearLayout。
public class PercentLinearLayout extends LinearLayout { private PercentLayoutHelper mPercentLayoutHelper; public PercentLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); mPercentLayoutHelper = new PercentLayoutHelper(this); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { mPercentLayoutHelper.adjustChildren(widthMeasureSpec, heightMeasureSpec); super.onMeasure(widthMeasureSpec, heightMeasureSpec); if (mPercentLayoutHelper.handleMeasuredStateTooSmall()) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); mPercentLayoutHelper.restoreOriginalParams(); } @Override public LayoutParams generateLayoutParams(AttributeSet attrs) { return new LayoutParams(getContext(), attrs); } public static class LayoutParams extends LinearLayout.LayoutParams implements PercentLayoutHelper.PercentLayoutParams { private PercentLayoutHelper.PercentLayoutInfo mPercentLayoutInfo; public LayoutParams(Context c, AttributeSet attrs) { super(c, attrs); mPercentLayoutInfo = PercentLayoutHelper.getPercentLayoutInfo(c, attrs); } @Override public PercentLayoutHelper.PercentLayoutInfo getPercentLayoutInfo() { return mPercentLayoutInfo; } @Override protected void setBaseAttributes(TypedArray a, int widthAttr, int heightAttr) { PercentLayoutHelper.fetchWidthAndHeight(this, a, widthAttr, heightAttr); } public LayoutParams(int width, int height) { super(width, height); } public LayoutParams(ViewGroup.LayoutParams source) { super(source); } public LayoutParams(MarginLayoutParams source) { super(source); } } }
- Android 支持百分比布局
- Android支持百分比布局
- Android百分比布局初探
- Android百分比布局:PercentRelativeLayout
- Android百分比布局:PercentFrameLayout
- Android 百分比布局
- android 百分比layout布局
- Android百分比布局
- android 百分比布局
- Android 百分比布局库
- Android 百分比布局揭秘
- Android 自定义百分比布局
- Android百分比布局
- android中的百分比布局
- Android百分比布局:PercentFrameLayout
- Android百分比布局:PercentRelativeLayout
- android百分比布局
- Android中的百分比布局
- 人生如戏
- CCFCSP201609-1最大波动
- 维吉尼亚加密解密
- 文章标题 大数加法
- JCP和JSR. 以及工作中碰到的一些JSR
- Android 百分比布局
- 如果你已经这样了,那你必须要跳槽了。
- STM32 CAN 过滤器、滤波屏蔽器配置总结
- 奔跑在Docker上的Spark
- hdu 1231 最大连续和(一题多解)
- 静态关键字static和静态代码块、局部代码快、构造代码块
- 《Cracking the Coding Interview程序员面试金典》----原串翻转
- vue嵌套路由-params传递参数(四)
- HTK语音识别之MFCC参数基本配置参数解释