2.1.1简介
在Android应用中,UI(User Interface)界面是人与手机之间数据传递,交互信息的重要媒介和对话接口。
Android程序开发最重要的一个环节就是界面处理,界面的美观度直接影响用户的第一印象,因此开发一个整齐、美观的界面是至关重要的。
Android应用的界面是由view和view Group对象构建而成的。view类是Android系统平台上用户界面表示的基本单元,view的一些子类被系统称为widgets(工具),它们提供了诸如文本输入框和按钮之类的UI对象的完整实现。
View Group是view的一个扩展,它可以容纳多个view,通过View Group类可以创建有联系的子View组成的复合控件。
2.1.2view的API结构
2.1.3事件流程
当用户通过手指触摸UI时,系统会自动创建对应的Event对象
Android中提供了多种方式拦截处理不同类型的事件
视图本身就可以处理发生在该视图上的事件
问:谁是事件源?
答:组件
问:谁是事件监听器?
答:第三方、当前类、匿名内部类
2.2.1使用UI事件
Android提供了很多不同类型的事件监听器接口
View.OnClickListener:onClick()//单击事件
View.OnLongClickListener:onLongClick()//长按事件
View.OnTouchListener:onTouch()//拖拽事件
View.OnCreateContextMenuListener:onCreateContextMenu()//创建菜单事件
View.OnFocusChangeListener:onFocusChange()//焦点事件
View.OnKeyListener:onKey()//键盘事件
View.setOn……Listener(listener)//Android给视图添加事件的方法
2.3.1layout下语句的含义
<?xml version="1.0" encoding="utf-8"?>//xml的版本和编码形式
<androidx.coodinatorlayout.Widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res_auto" xmlns:tools="http://schemas.android.com/tools"//约束文件
android:layout_width="match_parent"android:layout_height="match_parent"//基本属性性质,设置组件大小
tools:context="MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">//导航栏
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr|actionBarSize"
android:background="?attr|colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>//标题栏
</com.google.android.material.appbar.AppBarLayout>//样式
<include layout="@layout/content_main"/>//包含另一个界面
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom/end"
android:layout_margin="16dp"
app:src Compat="@android:drawable/ic_dialog_email"/>//创建邮件
</androidx.coordinatorlayout.widget.CoordinatorLayout>
2.4.1组件事件案例
<TextView
android:layout_width="wrap_content"
android:layout__height="wrap_content"
android:text="组件实践案例"//组件显示标题
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bids="0.47"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.136"/>//组件位置
</androidx.constraintlayout.widget.ConstraintLayout>
width和height的属性值:
match_parent:布满整个页面
wrap_content:根据组件大小自动
具体数值
获取组件:变量名=findViewById(R.id.id名);
给组件加事件:变量名.setOnClickListener(new MyListener())
2.5.1运行结果开头符号代表日志级别
I/用户级别
W/警告级别
D/信息级别
E/错误级别
2.6.1Android布局如下
LinearLayout:线性布局(常用布局方式)
RelativeLayout:相对布局
TableLayout:表格布局
GridLayout:网格布局
FrameLayout:模板布局
AbsoluteLayout:绝对布局
2.6.2LinearLayout