进度条:让用户了解进度:显示的一个进度
android:max 数值的最大值
android:progress 当前的进度
style 设置进度条的形式。 一种是长条 一种是圆圈
在java中有函数 setProgress getProgress 获得进度和设置进度
ProgressBar:圆圈进度
SeekBar: 条形进度 seekBar是progressBar的之类
seekBar是可以手动滑动的进度条
android:thumb 可以设置滑块的样式 即添加图片
seekbar变化监听是:
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
/**
* 当进度停止的时候
*/
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
/**
* 当进度开始的时候
*/
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
/**
* 当进度改变的时候
*/
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// TODO Auto-generated method stub
}
});
RatingBar: 星星进度 是seekBar和ProgressBar的扩展
android:numStars 一个RatingBar一共有几颗,默认是5颗。
android:rating 当前Rating有几颗星被点亮
android:stepsize 每次添加能添加几颗
android:isIndicator 设置该星级评分条是否允许用户改变
tabHost 选项卡,activity界面是一部分是选项卡,一部分为显示其他内容
当Activity不是继承与TabActivity类,那么就需要调用
TabHost.setup函数,
构建选项卡视图,需要用到下列几个容器和部件
*、 TabHost(容器)、用于容纳选项卡按钮和选项卡内容
*、TabWidget用于容纳选项卡按钮,每个按钮由文本标签及可选的图标组成。
必须将TabWidget的android:id 设置的时候必须是 @android:id/tabs
如果activity是继承了TabActivity的类,则TabHost的id必须是 @android:id
newTabSpec(String tag) 创建选项卡
addTab(TabHost.TabSpec tabspec)添加选项卡
*、FrameLayout用于容纳选项卡内容,每块内容都是FrameLayout的一个子类
eg:
setContentView(R.layout.activity_main);
tabHost=getTabHost();
tabHost.addTab(tabHost.newTabSpec("student")//创建新的选项卡
.setIndicator("学生信息").//设置选项卡的显示信息
setContent(R.id.tab1));//关联到每个选项卡的id
tabHost.addTab(tabHost.newTabSpec("enter")
.setIndicator("登陆").
setContent(R.id.tab2));
}
ViewFlipper 是继承与Framelayout ,开始的时候只会显示一个子视图,可让用户通过交互操作视图,
也可以通过定时器来翻转视图,
先建立ViewFlipper
在viewFlipper中添加控件,每个空间只能显示一个子视图
在触发事件中只用viewFlipper中的shownext方法即可
菜单:
选项菜单:
1、选项菜单的概念
*、通过按下设备上的Menu按钮来触发
*、一般用于针对整个界面的选项操作
2、选项菜单的创建
*、创建,在Activity下有一个方法onCreateOptionsMenu()方法
可以创建选项才当项,
/**
* 这个方法在activity被创建时被调用一次,
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 解析xml中定义的菜单
getMenuInflater().inflate(R.menu.main, menu);
//添加菜单,四个参数
menu.add( Menu.NONE(没有分组)//菜单组的id
0x0001,//菜单的id
1,//每个菜单在整个菜单的位置,
“你”//菜单的标签);
return true;
}
3、选项菜单的事件相应
*、这个方法接受一个MenuItem实例,代表被选中的item
getItemId获得被选中的Item的id
/**
* 选项菜单的响应函数
用switch判断是那个item被点击
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
break;
default:
break;
}
// TODO Auto-generated method stub
return super.onOptionsItemSelected(item);
}
4、菜单的动态修改
*、调用方法,这个方法每次启用选项菜单都会调用一次
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(Menu.none,0x0004,4,"删除");
return super.onPrepareOptionsMenu(menu);
}
*、对参数menu进行相应操作,注意id的设置和获取
1、add方法添加item
2、finditem方法查找item
3、removieitem 方法删除item
5、XML设置方式
*、菜单的XML文件在res/menu目录中
*、使用的时候R.menu.你菜单的id
建立:
*<menu>代表一个跟元素
*、<item>代表一个MenuItem,即菜单下的一个选项
*、<item>属性:
id:item的id,索引
title:选项的标签,文字显示
icon:item的图标,有些的系统不会显示,
orderInCategory:次序,在item中显示的次序
上下文菜单:和选项菜单类似,就是函数名字不一样
概念:用手指按住某个带有上下文菜单的控件不放,就会显示上下文菜单,
一般用于针对某个界面元素的扩展操作。
1、首先要告诉系统那些控件要关联上下文菜单
registerForContextMenu(要添加上下文菜单的控件)
2、复写onCreateContextMenu方法
*、与option不同每次唤醒菜单是才调用
*、通过参数id,对菜单做出响应操作。
3、复写onContextItemSelected方法
对用户的操作做出响应
菜单的高级特性:
次级菜单:
菜单里的子菜单项,:
*:设置、
1、可以在xml中加入menu标签来实现次级菜单
2、也可以通过addSubMenu方法加入次级菜单
addsubmenu方法返回一个submenu对象。
可以对submenu对象进行操作add,remove来修改二级菜单item
菜单组:
1、把若干个item放到一个组里,这些item可以共享一些特性
setGroupVisiable设置组下的item是否可见
setGroupEnabled设置组下item是不是可用
setGroupCheckedable组下是不是能被选中
*、不会影响原来界面 代码逻辑
*|设置;在Java中若设置一组则,add方法中的第一个参数应该一样
menu.add(1,01,1,"tian");
menu.add(1,02,3,"song");
在xml中使用group标签包裹起来
<group
android:id="@+id/group">
<item
android:id="@+id/action_settings"
android:orderInCategory="1"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/item1"
android:title="wo "
android:orderInCategory="10"></item>
</group>
使用checkable的item:
*、一个菜单的item可以表示为可选和不可选
使用组的android:checkableBehavior属性
*、一组item的checkable可能存在多种可能,
不支持check动作,
单选(radio burrons的行为)
复选(checkbox的行为)
设置、 在xml中的group标签中添加android;checkableBehavior属性
android:checkableBehavior="single" 单选
android:checkableBehavior="all"复选
menu控件本身点击后不会修改状态,需要手动设置
if(item.isChecked()==false){
item.setChecked(true);
}else{
item.setChecked(false);
}
进度条,TabHost,ViewFlipper、菜单
猜你喜欢
转载自blog.csdn.net/tst116/article/details/70237686
今日推荐
周排行