1.UI的理解................................................................
全称user interface 意为:用户界面
UI有view和viewGroup的根基类
view在屏幕上占据一片矩形区域,并会在上面进行内容绘制
viewGroup包含一些view或viewGrorup 用于控制字view的布局事件模型
事件是什么...............................................................
谁是事件源? 1.注册--->2.触发----> 事件源---->3.生成---->事件---->4.传递---->5.调用---->回调方法
谁是事件监听器?
设置监听器:view.setOn...listener(listener)
2.常用的UI组件
2.1简单的UI组件
1).textview:文本视图
android:id="@+id/tv_test1_msg"//指定ID
android:layout_width="match_parent"//宽度
android:layout_height="wrap_content"//高度
android:text="@string/tv_content"//文本
android:textColor="#FF0000"//文本颜色
android:textSize="20sp"//字体大小
2).edittext:可编辑的文本视图
android:hint="请输入手机号"//默认提示文本
android:inputType="phone//输入数据类型限定
3).button:按钮
4).imageview:图片视图
android:background="@drawable/ic_launcher//背景图片
android:src="@android:drawable/ic_media_play"//前景图片
// 设置背景图片 public void setimageresurce(int resld)
// 设置前图片public void setbackgroundresource(int resid)
5).checkBox:多选框
android:checked=“true”/> //标识默认是否勾选
//判断当前是否勾选
boolean isChecked()
//设置CheckBox是否勾选
void setChecked(boolean checked)
//设置选中状态改变的监听
void setOnCheckedChangeListener(OnCheckedChangeListener listener)
6).RadioGroup/RadioButton : 单选框
android:id="@+id/rg_test1_sex"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
android:id="@+id/rb_test1_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
android:id="@+id/rb_test1_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content“
android:checked="true"
android:text="女" />
2.2菜单......................................................
* optionMenu
* 1.如何触发Menu的显示
* 点击Menu键
*2.如何向Menu中添加MenuInfalter?重写onCreateOptionsMenu方法
* 1.menu。add()
* 菜单文件
*3.选择某个MenuItem是如何响应
* 重写onOptionsItemSelected方法
*ContextMenu
* 1.如何触发Menu的显示
* 长按某个视图,并view.setoncreatecontextMenulistener(this)
* 2.如何向Menu中添加MenuInfalter?
* 重写oncreatecontextMenu()方法用menu.add()添加(菜单文件方式也可以)
* 3.选择某个MenuItem是如何响应
* 重写oncontextItemSelected()根据item去响应
*/
2.3进度条...........................................
a.圆形
android:id="@+id/pb_test3_loading1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
b水平
android:id="@+id/pb_test3_loading2"
style=“?android:attr/progressBarStyleHorizontal“ //水平进度条
android:layout_width="match_parent“
android:layout_height="wrap_content"
android:progress=“2“ //当前进度, 默认为0
android:max=“10”/> // 最大进度, 默认为100
•ProgressBar
voidsetProgress(intProgress) : 设置当前进度
int getProgress() : 得到当前进度
voidsetMax(intmax) : 设置最大进度
int getMax() : 设置或得到最大进度
•View
voidsetVisibility(intvisibility) : 设置视图的可见性
View. VISIBLE :标识可见
View. INVISIBLE :标识不可见, 但占屏幕空间
View.GONE :标识不可见, 也不占屏幕空间
2.seekbar
android:id="@+id/sb_test3_prgress"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
SeekBar:
setOnSeekBarChangeListener(OnSeekBarChangeListener l) :设置改变的监听
OnSeekBarChangeListener:
onProgressChanged(SeekBar seekBar, intprogress, boolean fromUser) : 进度改变
onStartTrackingTouch(SeekBar seekBar) : 按下滑杆
onStopTrackingTouch(SeekBar seekBar) : 从滑杆离开
S;
2.4对话框
1.API结构
2.alerdialog
a.一般的
AlertDialog :
show() :显示警告框
没有公开的构造方法, 只能通过其内部类Builder来创建
AlertDialog.Builder:
create() :创建AlertDialog对象
show()
: 创建AlertDialog对象, 同时将其显示出来
setTitle(CharSequencetitle) : 设置标题
setMessage(CharSequencemessage) : 设置内容
setPositiveButton(String
text, OnClickListener listener) : 设置正面按钮
setNegativeButton(String
text, OnClickListener listener): 设置负面按钮
dismiss() : 移除dialog
setSingleChoiceItems(….)设置单选项列表
AlertDialog :
show() :显示警告框
没有公开的构造方法, 只能通过其内部类Builder来创建
AlertDialog.Builder:
create() :创建AlertDialog对象
show()
: 创建AlertDialog对象, 同时将其显示出来
setTitle(CharSequencetitle) : 设置标题
setMessage(CharSequencemessage) : 设置内容
setPositiveButton(String
text, OnClickListener listener) : 设置正面按钮
setNegativeButton(String
text, OnClickListener listener): 设置负面按钮
dismiss() : 移除dialog
b自定义布局
AlertDialog :
show() :显示警告框
没有公开的构造方法, 只能通过其内部类Builder来创建
AlertDialog.Builder:
create() :创建AlertDialog对象
show()
: 创建AlertDialog对象, 同时将其显示出来
setTitle(CharSequencetitle) : 设置标题
setMessage(CharSequencemessage) : 设置内容
setPositiveButton(String
text, OnClickListener listener) : 设置正面按钮
setNegativeButton(String
text, OnClickListener listener): 设置负面按钮
dismiss() : 移除dialog
setSingleChoiceItems(….)设置单选项列表
setSingleChoiceItems(….)设置单选项列表
AlertDialog :水平进度
show() :显示警告框
没有公开的构造方法, 只能通过其内部类Builder来创建
AlertDialog.Builder:
create() :创建AlertDialog对象
show()
: 创建AlertDialog对象, 同时将其显示出来
setTitle(CharSequencetitle) : 设置标题
setMessage(CharSequencemessage) : 设置内容
setPositiveButton(String
text, OnClickListener listener) : 设置正面按钮
setNegativeButton(String
text, OnClickListener listener): 设置负面按钮
dismiss() : 移除dialog
setSingleChoiceItems(….)设置单选项列表
方式一
new Thread(){
public voidrun(){
//下面的代码在分线程执行
}
}.start();
方式二
new Thread(new Runnable(){
public voidrun(){
//下面的代码在分线程执行
}
}).start();
根据ID查找view对象
a.查找当前界面中的view对象:findviewbyid(id)
b.查找某个view对象的自view:viewfindviewbyid
更新视图
a.不能在分线程直接更新UI
toast不能再分现程显示
但progressDialog可以在分线程更新
b.长时间的工作职能放在分线程执行