Android UI理解(一)

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小时制
结语:先休息了,明天继续补上~ 作为一个javaweb程序员,入了Android坑,真后悔~~~~

猜你喜欢

转载自blog.csdn.net/qq_39626462/article/details/88320994
今日推荐