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