前言
UI就是展示给用户的界面,相当重要。关于UI要学习的主要有相关的控件,布局,控件的事件机制等
官方提供了两种方式来定义用户界面:
- 在xml布局文件中通过xml属性进行控制
- 在Java或者kotlin程序代码中通过调用方法进行控制
- 推荐做法,混合使用:在xml文件中定义改动不大的组件,在代码中控制变动较大的组件
一:UI组件
Android采用组合器的设计模式来设计View和ViewGroup
1. 视图组件 View
1.1 重要特性
- View是Android大部分UI的基类
- View组件代表一个空白的矩形区域
1.2 View类重要属性
XML属性 | 相关方法 | 说明 |
---|---|---|
android:alpha | setAlpha(float) | 属性说明: 视图透明度,值在0-1之间。0为完全透明,1为完全不透明。 |
android:background | setBackgroundResource(int) | 属性说明: 视图背景 |
…未完待续
2. 视图容器组件 viewGroup
2.1 重要特性
- 继承自View,可以当成普通view类使用,但是主要还是做容器
- 可以包含View和ViewGroup
- 实际使用中使用子类
2.2 控制子组件
容器控制子组件依赖ViewGroup.LayoutParams,ViewGroup.MarginLayoutParams两个内部类,都提供了xml属性
ViewGroup.LayoutParams提供的属性:
andorid:layout_width:指定该组件的布局宽度
android:layout_height:指定该组件的布局高度
属性值的可选值:
- match_parent:指定子组件的高度,宽度与父容器组件相同(需要减去填充的空白距离)
- wrap_content:指定子组件的大小恰好能包裹它的内容即可
3. 布局组件 layout
Android主要的布局:
- LinearLayout 线性布局:
- RelativeLayout 相对布局
- FrameLayout 帧布局
二:重要术语及概念
- px:
像素(pixels),1px代表屏幕上一个物理的像素点。px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同。偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊。 - dp:
设备独立像素(Density-independent pixel),一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp=1px,但随着屏幕密度的改变,dp与px的换算会发生改变,换算公式为dips=(pixs*160)/densityDpi。 - dip:
设备独立像素,与dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp。 - sp:比例像素(scale-independent pixel),主要处理字体的大小,可以根据用户的字体大小首选项进行缩放。当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时1sp1dp=0.00625英寸。
- in:英寸,标准长度单位,1英寸=2.54厘米(约)。
- pt:
磅(point),标准长度单位,1pt=1/72英寸=0.035厘米。 - ppi:
每英寸像素数(pixel per inch),该值越高,则屏幕越细腻。
三:创建UI界面的方法
1. 使用xml布局文件
目录:app/src/main/res/layout
显示该视图:setContentView (R.layout.资源文件名字);
通过id访问组件:findViewByld (R.id.android.id 属性值);
2. 使用java代码
UI组件通过new关键字创建出来