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