Android中常用布局的使用

来源:互联网 发布:东方财富网python面试 编辑:程序博客网 时间:2024/06/10 18:55

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);

4 0
原创粉丝点击