[学习笔记][移动平台程序开发]第五章 Android用户界面

本文详细介绍了Android用户界面的基础,包括MVC模型的组成部分及其工作原理,强调了单线程用户界面的优势和可能导致的ANR问题。接着,探讨了界面控件的属性,如大小、位置和常用控件如TextView、EditText、Button、Spinner等的使用。还涵盖了界面布局的种类,如LinearLayout、ConstraintLayout等,并提到了菜单、操作栏、Fragment和界面事件的处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户界面基础

MVC 模型

  Android用户界面框架采用MVC(Model_View_Controller)模型。

  Model:模型,是应用程序的核心,是对客观事务的抽象。
  View:视图,Androi系统的界面控件以一种树形的结构组织在一起,成为View Tree(视图树)
  Controller:控制器,控制器接收并响应程序的外部动作,每个外部动作作为一个独立的事件被加入队列中,然后Android用户界面框架按照“先进先出”的规则从队列中获取事件,并将事件分配给所对应的事件处理函数。

单线程用户界面

  控制器从队列中获取事件和视图在屏幕上绘制用户界面,使用的都是同一个线程,它处理函数具有顺序性,能够降低应用程序的复杂程度和开发的难度。但是缺点是如果事件处理函数过于复杂,可能会导致用户界面失去响应。

ANR:“Application Not Responding”
Activity Manager和Window Manager系统服务监控着应用的响应能力,在以下情况中会弹出ANR对话框:

  1. 未在5秒内对用户输入事件响应;
  2. BroadcastReceiver未在10秒内执行完毕。

界面控件

控件的属性

控件的属性直接在其控件标签内赋值,格式如下:

<控件名>
	android:id = " @+id/<名称>"
	android:<属性名1>="<值1>"
	android:<属性名2>="<值2>"
	……
	android:<属性名n>="<值n>"
</控件名>
  1. id属性
    指定控件的id属性是为了在其后引用该控件,当前界面的所有控件id属性值不能相同。
android:id="@+id/TextView1"//表示新建立一个ID叫TextView1的资源
android:id="@android:id/TextView1"//表示不是新添加的资源,或属于Android框架的资源,必须添加Android包的命名空间。
  1. 大小属性
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,通常用于指定字体的大小。

  1. 默认显示的字符串
android:text = "aaa"//显示aaa
android:text = "@string/text1"//显示字符串资源文件(strings.xml)中的id为text1的字符串内容
  1. 显示字符的大小
android:textSize = "@dimen/abc_text_size_display_1_material"//使用尺寸资源文件(dimen.xml)中的id为abc_text_size_display_1_material的尺寸设置
android:textSize = "20sp"//设置文字大小为20sp
  1. 位置
android:layout_below = "@id/EditText1" //该控件位于EditText1控件的下部
android:layout_above
android:layout_toLeftO
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值