1.UI的理解
全称user interface,意为:用户界面 由View和ViewGroup组成
View类是所有视图(包括ViewGroup)的根基类
View在屏幕上占据一片矩形区域 并会在上面进行内容绘制
ViewGroup包含一些View或ViewGroup 用于控制子View的布局
事件是什么?
在操作屏幕时发生的事件 如点击事件 滑动等等
谁是事件源?
就是操作的视图 通过点击事件触发事件源 生成事件
谁是事件监听器?
触发事件源 生成事件 传递到监听器
设置监听器 view.setOnClickListener(listener)
2.常用的UI组件
2.1.简单的UI组件
1.TextView文本视图
android:id="@+id/tv_test1_message" 指定id
android:layout_width="match_parent" 宽度
android:layout_height="wrap_content" 高度
android:text="这是TextView的内容" 文本
android:textColor="#ff0000" 文本颜色
android:textSize="20sp" 字体大小
2.EditText:课编辑的文本视图
android:hint="请输入手机号" 默认提示文本
android:inputTapy="phone" 输入数据类型限定
3.Button :按钮
4.ImageView:图片视图
android:background="@drawable/ic_laucher" 背景图片
android:src="@android:drawable/ic_media_play" 前景图片
public void setImageResource(int resld) 设置前景图片
public void setBackgroundRsource 设置背景图片
5.CheckBox:多选框
android:checked="true" 标识默认是否勾选
boolean isChecked() 判断当前是否勾选
void setChecked(boolean checked) 设置CheckBox是否勾选
设置选中状态改变的监听
void setOnCheckChangeListener(OnChenkedChangeListener listener) 6.RadioGroup/RadioButton:单选框
<RadioGroup
android:id="@+id/rg_test1_sex"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioBuuton
android:id="@+id/rb_test1_male"
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:text="男"/>
<RadioButton
android:id="@+id/rb_test1_female"
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:checked="女"/>
</RadioGroup>
2.2菜单Menu
1.OptionMenu
1.如何触发Menu的显示?
点击Menu
2.如何向Menu中添加MenuItem?
重写onCreatOptionMenu()
3.选择某个MenuItem是如何响应?
重写omOptionsItemSelected() 根据itemId做响应
2.ContextMenu
1.如何触发Menu的显示?
长按某个视图
view.setOnCreatContextMenuListener(this)
2.如何向Menu中添加MenuItem?
重写onCreatContextMenu() menu.add()
3.选择某个MenuItem是如何响应?
重写onContextItemSelected() 根据itemId做响应
2.3进度条
1.Progressbar
android:id="@+id/pb_test3_loading1"
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
b.水平
android:id="@+id/rb_test3_loading2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="2" 当前进度 默认0
android:max="10" 最大进度 默认100
ProgressBar
void setProgress(int Progress):设置当前进度
int getProgress():得到当前进度
void setMax(int max):设置最大进度
int getMax():设置或得到最大进度
View
void setVisibility(int visibility):设置图片可见性
View.VISIBLE:标识可见
View.INVISIBLE:标识不可见 但占屏幕空间
View.GONE:标识不可见 也不占屏幕空间
2.SeekBar
android:id="@+id/sb_test3_preress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
2.4对话框
1.API结构
Dialog-android.app
AlertDialog
DatePickerDialog
ProgressDialog
TimePickerDialog
2.AlertDialog
AlertDialog:
show():显示警告框
没有公开的构造方法,只能通过其内部类Builder来创建
AlertDialog.Builder:
create():创建AlertDialog对象
show():创建AlertDialg对象,同时将其显示出来
setTitle(CharSequence title):设置标题
setMessage(CharSequence message):设置内容
setPositiveButton(String text,OnClickListener listener):设置正面按钮
setNegatiVeButton(String text,OnClickListener listener):设置负面按钮
dismiss():移除dialog
b.自定义布局的动态加载布局文件得到对应的View对象
View inflate(Context context,int resource,ViewGroup root):动态加载布局得到View
设置view
DialogBuilder:
setView(View view):设置Dlalog中的视图
c.带单选列表的
setSingleChoicetemd(......)设置单选列列表
3)ProgressDialog
a.圆形进度
ProgressDialog:
static show(Context context,CharSequence title,CharSequence message):显示dialog
b.水平进度
ProgressDialog(Context context):构造方法
setProgressStyle(int style):设置样式
ProgressDialog.STYLE_HORIZONTAL:水平进度条样式
补充:
1):启动分线程
1.方式一:new Thread(){
pubic void run(){
}
}
2.方式二:new Thread(new Runnable()){
public void run(){
}
}
2):根据id查找view对象
a.查找当前界面中的view对象:findViewById(id)
b.查找某个view对象的子view:view.findViewById(id)
3):更新视图
a.不能在分线程直接更新UI:
toast 不能在分线程显示
但ProgressDialog可以直接在分线程更新
b.长时间的工作只能放在分线程执行
全称user interface,意为:用户界面 由View和ViewGroup组成
View类是所有视图(包括ViewGroup)的根基类
View在屏幕上占据一片矩形区域 并会在上面进行内容绘制
ViewGroup包含一些View或ViewGroup 用于控制子View的布局
事件是什么?
在操作屏幕时发生的事件 如点击事件 滑动等等
谁是事件源?
就是操作的视图 通过点击事件触发事件源 生成事件
谁是事件监听器?
触发事件源 生成事件 传递到监听器
设置监听器 view.setOnClickListener(listener)
2.常用的UI组件
2.1.简单的UI组件
1.TextView文本视图
android:id="@+id/tv_test1_message" 指定id
android:layout_width="match_parent" 宽度
android:layout_height="wrap_content" 高度
android:text="这是TextView的内容" 文本
android:textColor="#ff0000" 文本颜色
android:textSize="20sp" 字体大小
2.EditText:课编辑的文本视图
android:hint="请输入手机号" 默认提示文本
android:inputTapy="phone" 输入数据类型限定
3.Button :按钮
4.ImageView:图片视图
android:background="@drawable/ic_laucher" 背景图片
android:src="@android:drawable/ic_media_play" 前景图片
public void setImageResource(int resld) 设置前景图片
public void setBackgroundRsource 设置背景图片
5.CheckBox:多选框
android:checked="true" 标识默认是否勾选
boolean isChecked() 判断当前是否勾选
void setChecked(boolean checked) 设置CheckBox是否勾选
设置选中状态改变的监听
void setOnCheckChangeListener(OnChenkedChangeListener listener) 6.RadioGroup/RadioButton:单选框
<RadioGroup
android:id="@+id/rg_test1_sex"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioBuuton
android:id="@+id/rb_test1_male"
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:text="男"/>
<RadioButton
android:id="@+id/rb_test1_female"
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:checked="女"/>
</RadioGroup>
2.2菜单Menu
1.OptionMenu
1.如何触发Menu的显示?
点击Menu
2.如何向Menu中添加MenuItem?
重写onCreatOptionMenu()
3.选择某个MenuItem是如何响应?
重写omOptionsItemSelected() 根据itemId做响应
2.ContextMenu
1.如何触发Menu的显示?
长按某个视图
view.setOnCreatContextMenuListener(this)
2.如何向Menu中添加MenuItem?
重写onCreatContextMenu() menu.add()
3.选择某个MenuItem是如何响应?
重写onContextItemSelected() 根据itemId做响应
2.3进度条
1.Progressbar
android:id="@+id/pb_test3_loading1"
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
b.水平
android:id="@+id/rb_test3_loading2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="2" 当前进度 默认0
android:max="10" 最大进度 默认100
ProgressBar
void setProgress(int Progress):设置当前进度
int getProgress():得到当前进度
void setMax(int max):设置最大进度
int getMax():设置或得到最大进度
View
void setVisibility(int visibility):设置图片可见性
View.VISIBLE:标识可见
View.INVISIBLE:标识不可见 但占屏幕空间
View.GONE:标识不可见 也不占屏幕空间
2.SeekBar
android:id="@+id/sb_test3_preress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
2.4对话框
1.API结构
Dialog-android.app
AlertDialog
DatePickerDialog
ProgressDialog
TimePickerDialog
2.AlertDialog
AlertDialog:
show():显示警告框
没有公开的构造方法,只能通过其内部类Builder来创建
AlertDialog.Builder:
create():创建AlertDialog对象
show():创建AlertDialg对象,同时将其显示出来
setTitle(CharSequence title):设置标题
setMessage(CharSequence message):设置内容
setPositiveButton(String text,OnClickListener listener):设置正面按钮
setNegatiVeButton(String text,OnClickListener listener):设置负面按钮
dismiss():移除dialog
b.自定义布局的动态加载布局文件得到对应的View对象
View inflate(Context context,int resource,ViewGroup root):动态加载布局得到View
设置view
DialogBuilder:
setView(View view):设置Dlalog中的视图
c.带单选列表的
setSingleChoicetemd(......)设置单选列列表
3)ProgressDialog
a.圆形进度
ProgressDialog:
static show(Context context,CharSequence title,CharSequence message):显示dialog
b.水平进度
ProgressDialog(Context context):构造方法
setProgressStyle(int style):设置样式
ProgressDialog.STYLE_HORIZONTAL:水平进度条样式
补充:
1):启动分线程
1.方式一:new Thread(){
pubic void run(){
}
}
2.方式二:new Thread(new Runnable()){
public void run(){
}
}
2):根据id查找view对象
a.查找当前界面中的view对象:findViewById(id)
b.查找某个view对象的子view:view.findViewById(id)
3):更新视图
a.不能在分线程直接更新UI:
toast 不能在分线程显示
但ProgressDialog可以直接在分线程更新
b.长时间的工作只能放在分线程执行