android学习日记03--常用控件progressbar/seekbar

常用控件

5、progressbar
  进度条,比较常用的组件,在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度。一个进度条也可不确定其进度。在不确定模式下,进度条显示循环动画。一般有圆形和条形两种;
默认进度条是圆形的
小圆型进度条:
style="?android:attr/progressBarStyleSmall"

大圆形进度条:
style="?android:attr/progressBarStyleLarge"

条形进度条:
style="?android:attr/progressBarStyleHorizontal"

android:max="100" --最大值
android:progress="50" --初始值
android:secondaryProgress="60" --次进度条值

常用方法:

           getMax():返回这个进度条的范围的上限

    getProgress():返回进度

    getSecondaryProgress():返回次要进度

    incrementProgressBy(int diff):指定增加的进度

    isIndeterminate():指示进度条是否在不确定模式下

    setVisibility(int v):设置该进度条是否可视

           onSizeChanged(int w, int h, int oldw, int oldh):当进度值改变时引发此事件

简单小例子:

新开个线程,让条形进度条从最小增到最大,再减到最小

 1 public class MainActivity extends Activity implements Runnable{
 2 
 3     private Thread td;
 4     private ProgressBar pb;
 5     private boolean stateChange;
 6     
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11         
12         pb = (ProgressBar)findViewById(R.id.pd);
13         td = new Thread(this);
14         
15         td.start();
16     }
17 
18 
19     @Override
20     public boolean onCreateOptionsMenu(Menu menu) {
21         // Inflate the menu; this adds items to the action bar if it is present.
22         getMenuInflater().inflate(R.menu.main, menu);
23         return true;
24     }
25 
26 
27     @Override
28     public void run() {
29         // TODO Auto-generated method stub
30         while(true) {
31             int current = pb.getProgress();
32             int max = pb.getMax();
33             int securrent = pb.getSecondaryProgress();
34             
35             if (stateChange == false) {
36                 if(current >= max) {
37                     stateChange = true;
38                 }else {
39                     pb.setProgress(current+1);
40                     pb.setSecondaryProgress(current+1);
41                 }
42             }else {
43                 if(current <= 0) {
44                     stateChange = false;
45                 }else {
46                     pb.setProgress(current-1);
47                     pb.setSecondaryProgress(current-1);
48                 }
49             }
50             
51             try {
52                 td.sleep(50);
53             } catch (Exception e) {
54                 e.printStackTrace();
55             }
56         }
57     }
58     
59 }
View Code

 

6、seekBar
  拖动条,见到的较多,如地图上,放大缩小,音乐播放时声音的放大缩小等

监听事件:

 1 @Override
 2 public void onStopTrackingTouch(SeekBar seekBar) {
 3 // TODO Auto-generated method stub
 4 tv.setText("拖动完成...");
 5 }
 6 
 7 @Override
 8 public void onStartTrackingTouch(SeekBar seekBar) {
 9 // TODO Auto-generated method stub
10 tv.setText("拖动中...");
11 }
12 
13 @Override
14 public void onProgressChanged(SeekBar seekBar, int progress,
15 boolean fromUser) {
16 // TODO Auto-generated method stub
17 tv.setText("当前拖动条值为:"+progress);
18 }
View Code

类似长型的进度条,只是可以手动拖到,
也有
android:max="100" --最大值
android:progress="50" --初始值
android:secondaryProgress="60" --次进度条值

 

关于滑块还有一种较常用的是RatingBar,星级滑块,一般用于评定等级。

用法和上面大同小异,不再多说。

posted @ 2014-02-11 21:23  aiguozhe1991  阅读(1007)  评论(0编辑  收藏  举报