UI定义
用户界面译为 User Interface 简称
它由(视图)View和(视图)ViewGroup组成 。
View是所有视图(也包括ViewGroup)的基类 。
UI的组成
layout布局组成
还有一种表示方式:手机屏幕的图标(zfb,jd,tb)等等
UI事件接口
View.OnClickListener: onClick()
View.OnLongClickListener: onLongClick()
View.OnTouchListener: onTouch()
View.OnCreateContextMenuListener: onCreateContextMenu()
View.OnFocusChangeListener: onFocusChange()
View.OnKeyListener: onKey()
设置监听事件 第一种方式
XXXX.setOnClickListener(this);
//第二种:事件监听需要实现View.OnClickListener()的onClick
imageView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(IpcamClientTestActivity.this,"事件监听",Toast.LENGTH_LONG).show();
}
});
常用视图
TextView 文本视图
EditText 编辑框
Button 按钮
Toast 文本小提示
RadioButton 单选择框
RadioGroup 单选择框组
CheckBox 多选框
ImageView 图片视图
listView 列表视图 (几乎淘汰 使用RecyclerView了)
注:在开发的过程中listView列表搭配Component使用的过程中,前任做了个视频播放列表,发现在有的手机上可以正常播放,有的不可以(请教了一些人,也不能解惑坑死我了)。后面使用RecyclerView使用方式解决这个bug了
菜单Component
OptionMenu 选择菜单
OptionMenu在点击手机的menu键触发
Activity : onCreateOptionsMenu(Menu menu)
显示OptionMenu的回调方法, 在此方法中向Menu中添加MenuItem
添加menuItem的两种方式:
纯编码方式: menu.add(….)
加载menu文件的方式:
->MenuInflater menuInflater = getMenuInflater();
->menuInflater.inflate(R.menu.main_option, menu);
Activity : onOptionsItemSelected(MenuItem item)
当选择某个菜单项的回调方法
ContextMenu 上下文菜单
View : setOnCreateContextMenuListener(listener)
为某个视图添加创建ContextMenu的监听(需要长按触发)
Activity : onCreateContextMenu(menu, view, menuInfo)
显示菜单的回调方法
Activity : onContextItemSelected(MenuItem item)
当选择某个菜单项的回调方法
注意问题点:
编写菜单
如何触发Menu的显示?
如何向Menu中添加MenuItem?
选择某个MenuItem时如何响应?
Progressbar : 进度条
void setProgress(int Progress) : 设置当前进度
int getProgress() : 得到当前进度
void setMax(int max) : 设置最大进度
int getMax() : 设置或得到最大进度
SeekBar : 可手动滑动的进度条
setOnSeekBarChangeListener(OnSeekBarChangeListener l) : 设置改变的监听
onSeekBarChangeListener:
onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) : 进度改变
onStartTrackingTouch(SeekBar seekBar) : 按下滑杆
onStopTrackingTouch(SeekBar seekBar) : 从滑杆离开
对话框Component(dialog对话框不同)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190307205554331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NjI2NDYy,size_16,color_FFFFFF,t_70)
AlertDialog : 警告框API
show() : 显示警告框
没有公开的构造方法, 只能通过其内部类Builder来创建
AlertDialog.Builder :
create() : 创建AlertDialog对象
show() : 创建AlertDialog对象, 同时将其显示出来
setTitle(CharSequence title) : 设置标题
setMessage(CharSequence message) : 设置内容
setPositiveButton(String text, OnClickListener listener) : 设置正面按钮
setNegativeButton(String text, OnClickListener listener): 设置负面按钮
dismiss() : 移除dialog
setSingleChoiceItems(….)设置单选项列表
自定义:
DialogBuilder :
setView(View view) : 设置Dialog中的视图
View :
View inflate(Context context, int resource, ViewGroup root) : 动态加载布局得到View
ProgressDialog : 带进度Dialog
ProgressDialog :
static show(Context context, CharSequence title,CharSequence message) : //显示dialog
ProgressDialog(Context context) : //构造方法
setProgressStyle(int style) //设置样式
ProgressDialog.STYLE_HORIZONTAL : //水平进度条样式
DateDialog : 日期Dialog
public DatePickerDialog(Context context,
OnDateSetListener callBack, //点击确定的回调监听
int year, //显示年份
int monthOfYear, // 显示月分
int dayOfMonth) // 显示日
TimeDialog : 时间Dialog
public TimePickerDialog (Context context,
OnTimeSetListener callBack, //点击确定的回调监听
int hourOfDay, //几点
int minute, // 几分
boolean is24HourView) // 是否是24小时制