目录
用户界面基础
MVC 模型
Android用户界面框架采用MVC(Model_View_Controller)模型。
Model:模型,是应用程序的核心,是对客观事务的抽象。
View:视图,Androi系统的界面控件以一种树形的结构组织在一起,成为View Tree(视图树)
Controller:控制器,控制器接收并响应程序的外部动作,每个外部动作作为一个独立的事件被加入队列中,然后Android用户界面框架按照“先进先出”的规则从队列中获取事件,并将事件分配给所对应的事件处理函数。
单线程用户界面
控制器从队列中获取事件和视图在屏幕上绘制用户界面,使用的都是同一个线程,它处理函数具有顺序性,能够降低应用程序的复杂程度和开发的难度。但是缺点是如果事件处理函数过于复杂,可能会导致用户界面失去响应。
ANR:“Application Not Responding”
Activity Manager和Window Manager系统服务监控着应用的响应能力,在以下情况中会弹出ANR对话框:
- 未在5秒内对用户输入事件响应;
- BroadcastReceiver未在10秒内执行完毕。
界面控件
控件的属性
控件的属性直接在其控件标签内赋值,格式如下:
<控件名>
android:id = " @+id/<名称>"
android:<属性名1>="<值1>"
android:<属性名2>="<值2>"
……
android:<属性名n>="<值n>"
</控件名>
- id属性
指定控件的id属性是为了在其后引用该控件,当前界面的所有控件id属性值不能相同。
android:id="@+id/TextView1"//表示新建立一个ID叫TextView1的资源
android:id="@android:id/TextView1"//表示不是新添加的资源,或属于Android框架的资源,必须添加Android包的命名空间。
- 大小属性
android:layout_width = //宽度
android:layout_height = //高度
属性值:
“wrap_content”:包裹所显示的字符串即可
“fill_content”:等于父控件的宽度
“240dp”:240个像素
px dpi dp sp
px:像素
dpi:dpi(Dots Per Inch),分辨率
dp:dp = dip(Device Independent Pixels),设备独立像素。
px = dp * (dpi/160)
在dpi为160的屏幕上,1dp = 1px。
sp:scaled pixels,通常用于指定字体的大小。
- 默认显示的字符串
android:text = "aaa"//显示aaa
android:text = "@string/text1"//显示字符串资源文件(strings.xml)中的id为text1的字符串内容
- 显示字符的大小
android:textSize = "@dimen/abc_text_size_display_1_material"//使用尺寸资源文件(dimen.xml)中的id为abc_text_size_display_1_material的尺寸设置
android:textSize = "20sp"//设置文字大小为20sp
- 位置
android:layout_below = "@id/EditText1" //该控件位于EditText1控件的下部
android:layout_above
android:layout_toLeftO