Android中常用布局的使用

1      UI布局

1.1    日志的使用

verbose:详细信息(黑色)

debug:调试信息(蓝色)

info:普通信息(绿色)

warn:警告信息(黄色)

error:错误信息(红色)

/**

* 调试信息(log)

* 主要分5个等级,可以在logcat中对种类进行过滤,但是log是有等级的,过滤的时候,高等级的可以显示低等级的信息

* 1、verbose详细信息

* 2、debug调试信息

* 3、info普通信息       一般用

* 4、warn警告信息

* 5、error错误信息

*/

日志的标志取名:

private static final String TAG =MainActivity.class.getSimpleName();

1.2    线性布局 LinearLayout

概念:线性布局控制其中的控件或组件横向或纵向排列。线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来

相关的常用属性:

Android:orientation控制布局中控件的排列方式

android:gravity控制当前控件内容的显示位置,控件的内容在控件内部的对齐方式

android:layout_gravity当前控件在父控件中的位置

android:layout_weightSum权重总数(可以不写,如果不指定的话就默认是子控件设置权重的总和)

android:layout_weight权重值,主要是指空闲空间的分配比例,官方建议使用权重的控件最好将宽度或高度设置为0dp.

注意事项:在线性布局中使用layout_gravity属性,那么不能控制线性布局排列方向上的位置

1.3    相对布局 RelativeLayout

常用属性

第一组:控件与父控件之间的对齐关系:

android:layout_centerHorizontal在父布局中水平居中

android:layout_centerInParent在父布局中居中

android:layout_centerVertical在父布局中垂直居中

android:layout_alignParentBottom是否跟父布局底部对齐

android:layout_alignParentRight是否跟父布局右对齐

android:layout_alignParentTop是否跟父布局顶部对齐

android:layout_alignParentLeft是否跟父布局左对齐

第二组:兄弟控件之间的相对位置

android:layout_toLeftOf在指定控件的左边

android:layout_toRightOf在指定控件的右边

android:layout_above在指定控件的上边

android:layout_below在指定控件的下边

第三组:兄弟控件之间的对齐关系

android:layout_alignLeft跟指定控件左对齐

android:layout_alignRight跟指定控件右对齐

android:layout_alignTop跟指定控件顶部对齐

android:layout_alignBottom跟指定控件底部对齐

android:layout_alignBaseline跟指定控件水平对齐(基准线)

Relativelayout布局的新属性(Android 4.2)

android:layout_alignStart对齐到起始位置

android:layout_alignEnd对齐到终止位置

android:layout_alignParentStart对齐到父控件的起始位置

android:layout_alignParentEnd对齐到父控件的终止位置

1.4    帧布局 FrameLayout

帧布局每次添加的控件都显示在最上面,最后显示在界面上的是最后添加的一个控件

1.5    表格布局 TableLayout

TableRow 单元行控件

TableRow单元行里的单元格的宽度小于默认的宽度时就不起作用,其默认是fill_parent,高度可以自定义大小

常用属性

android:shrinkColumns收缩列

android:stretchColumns拉伸列

android:collapseColumns隐藏列

android:layout_column指定列(作用在列的身上),自动补齐无效

android:layout_span合并列(作用在列的身上)

1.6    网格布局 GridLayout(Android 4.0 新增)

GridLayout布局是将布局中的内容划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。

GridLayout布局属性

android:columnCount最大列数

android:rowCount最大行数

android:orientation布局中子元素的布局方向

GridLayout中子元素的属性

android:layout_column显示该控件的列

android:layout_row该控件所在行

android:layout_columnSpan合并列

android:layout_rowSpan合并行。即该控件所占的行数

1.7    绝对布局 AbsoluteLayout(Android 2.2 开始已被废弃)

1.8    内边距和外边距

内边距

android:padding内边距

android:paddingXXX         (上下左右)内边距

android:padding       内边距

android:paddingXXX         (上下左右)内边距

android:layout_margin             外边距

android:layout_marginXXX      (上下左右)上外边距

外边距

android:layout_margin外边距

android:layout_marginXXX      (上下左右)上外边距

1.9    Android下的单位

px(pixels)像素

dp(Device Independent Pixels)设备独立像素

sp(Scaled Pixels)比例像素

in(inches)英寸

mm(millimeters)毫米

pt(points)点,1/72英寸

总结:为了适应不同分辨率和不同的像素密度,非文字尺寸推荐使用dp,文字大小使用sp。

像素密度 dpi

每英寸上的像素点的个数

计算公式:dpi=sqrt(w*w+h*h)/屏幕尺寸

//屏幕测量工具

DisplayMetricsdisplayMetrics = getResources().getDisplayMetrics();

Log.i("mtag","width = " + displayMetrics.widthPixels);

Log.i("mtag","height = " + displayMetrics.heightPixels);

Log.i("mtag","dpi = " + displayMetrics.densityDpi);

Log.i("mtag","像素比值 = " + displayMetrics.density);

你可能感兴趣的:(Android中常用布局的使用)