学习两种显示条,ProgressBar用于output,SeekBar用于Input。

ProgressBar

1)Android XML文件

... ...
<ProgressBar android:id="@+id/c81_firstBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:max="200" <!-- 缺省为100 -->
android:visibility="gone"/>
<!-- gone和invisible都是 当前不可视-,但是invisible在排版上保留了widget的空间,gone不保留 -->
<ProgressBar android:id="@+id/c81_secondBar"
style="?android:attr/progressBarStyle"
... ... />
<ProgressBar android:id="@+id/c81_thirdBar"
style="?android:attr/progressBarStyleLarge"
... ... />
<ProgressBar android:id="@+id/c81_forthBar"
style="?android:attr/progressBarStyleSmall"
...... />
<Button android:id="@+id/c81_myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Begin" />

... ...

我们注意到style的设置方法,查看Android的reference的Progress中,我们在XML attributes中查到有四种style,我们分别设置了4个progressbar来进行实验。

2)源代码

ProgressBar比较容易,我们需要了解它的一些基本操作,见下面粗体部分。

//在OnCreate()中,设置layout,然后通过ID找到 firstBar,secondBar,thirdBar, fourthBar, Button,此步骤略去
// firstBar.setIndeterminate(true); /* 设置progressbar无效*/

button.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
if (precent == 0){
firstBar.setProgress(0);
firstBar.setSecondaryProgress(0);
secondBar.setProgress(0);
firstBar.setVisibility(View.VISIBLE);
secondBar.setVisibility(View.VISIBLE);
thirdBar.setVisibility(View.VISIBLE);
forthBar.setVisibility(View.VISIBLE);
precent += 10;

}else if(precent <= firstBar.getMax()){ //当然在这个例子中Max为200,也可以直接写为200,但是建议使用getMax()
firstBar.setProgress(precent); //也可以使用 firstBar.incrementProgressBy(10);
firstBar.setSecondaryProgress(precent + 10);
// secondBar.setProgress(precent); /* 测试证明此此不起作用,包括thirdBar, fourthBar*/
precent += 10;
}else{
firstBar.setVisibility(View.GONE);
secondBar.setVisibility(View.GONE);
thirdBar.setVisibility(View.GONE);
forthBar.setVisibility(View.GONE);
precent = 0;

}
}

});

如下图所示,先看第一个progressbar,style为progressBarStyleHorizontal右图设置了无效,即firstBar.setIndeterminate(true)。如果设置了无效,则setProgress()无法起作用。进度条允许设置两个进度setProgress()和setSencondaryProgress(),后者颜色浅一些。一般我们使用一个进度条。后面三个style分别为progressBarStyle,progressBarStyleLarge和progressBarStyleSmall。这三个都是表示正在执行过程,只是显示的大小尺寸不一样。这三个style,setProgress()是不起作用的。

SeekBar

progressbar使用与显示进度,或者通知用户正在执行,避免因执行时间过长用户以为程序出问题,属于Output,而SeekBar属于Input,看获得用户手指滑动或者点击在进度条的位置。我们在上面一个例子后面增加。

1)Android XML文件

<SeekBar android:id="@+id/c81_seekbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/c81_info"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

2)源代码

info = (TextView)findViewById(R.id.c81_info);
seekbar = (SeekBar)findViewById(R.id.c81_seekbar);

//seekbar通过setOnSeekBarChangeListener()设置触发方法,对onProgressChanged()进行处理
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
int progess = arg0.getProgress(); //getProgress( )获得当前的位置
info.setText("Progress is "+ progess + (arg2 ? " Trigger" : " Nontrigger") + " by user.");
}

public void onStartTrackingTouch(SeekBar arg0) {
// nothing to do
}

public void onStopTrackingTouch(SeekBar arg0) {
// nothing to do
}
});

相关链接:我的Andriod开发相关文章

更多相关文章

  1. Android使用FFmpeg(二)--Android(安卓)Studio配置ffmpeg
  2. activity属性设置大全
  3. Android(安卓)开发小技巧
  4. Android(安卓)EditView属性
  5. 最易用的 Android(安卓)HTTP library
  6. android的布局文件简介
  7. Android(安卓)activity属性设置大全
  8. Android(安卓)GridView九宫图
  9. Android(安卓)SVG动画PathView源码解析与使用教程(API 14)

随机推荐

  1. Android异步处理系列文章索引
  2. Android(安卓)客户端与服务器交互方式
  3. Android下生成core dump的方法
  4. 如何在Android真机上检测是否有Google Ma
  5. Android画图之抗锯齿
  6. Android(安卓)adb的使用略解
  7. 硬件访问服务4之Android硬件访问服务框架
  8. Android(安卓)Adapter的那些事
  9. Android应用程序签名(官方文档中文版)(上)
  10. android的binder机制研究(C++部分)