ProgressBar、RatingBar和Spinner控件

1、ProgressBar、SeekBar与RatingBar控件

ProgressBar控件,也就是我们通常的进度条控件,可以显示加载的进度等。SeekBar控件,滑块控件,可以根据用户的需要动态为赋值。本例子就是拖动SeekBar,让进度条实时显示拖动的进度。RatingBar控件,星条控件,我们经常见到的打分控件,五颗星星。下面是main.xml页面的代码。我们声明了几个控件。

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 
11     <TextView
12         android:id="@+id/textView1"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:text="@string/hello_world" />
16 
17     <ProgressBar
18         android:id="@+id/progressBar1"
19         android:layout_width="fill_parent"
20         android:layout_height="wrap_content"
21         android:layout_alignParentLeft="true"
22         android:layout_below="@+id/textView1"
23         android:layout_marginTop="68dp"
24         android:background="@drawable/color" />
25 
26     <SeekBar
27         android:id="@+id/seekBar1"
28         android:layout_width="match_parent"
29         android:layout_height="wrap_content"
30         android:layout_alignParentLeft="true"
31         android:layout_alignParentRight="true"
32         android:layout_below="@+id/progressBar1"
33         android:layout_marginTop="48dp" />
34 
35     <RatingBar
36         android:id="@+id/ratingBar1"
37         android:layout_width="wrap_content"
38         android:layout_height="wrap_content"
39         android:layout_alignLeft="@+id/seekBar1"
40         android:layout_below="@+id/seekBar1"
41         android:layout_marginTop="68dp" />
42 
43     <ProgressBar
44         android:id="@+id/progressBar2"
45         style="?android:attr/progressBarStyleHorizontal"
46         android:layout_width="fill_parent"
47         android:layout_height="wrap_content"
48         android:layout_alignParentRight="true"
49         android:layout_below="@+id/ratingBar1" />
50 
51 </RelativeLayout>

这里我们只需要捕捉seekbar的拖动事件以及RatingBar控件的事件。SeekBar的事件是setOnSeekBarChangeListener,而Ratingbar的事件为setOnRatingBarChangeListener。

 1     protected void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         setContentView(R.layout.activity_main);
 4         final SeekBar seek=(SeekBar)findViewById(R.id.seekBar1);
 5         final ProgressBar process=(ProgressBar)findViewById(R.id.progressBar2);
 6         final RatingBar rating=(RatingBar)findViewById(R.id.ratingBar1);
 7         rating.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
 8             
 9             @Override
10             public void onRatingChanged(RatingBar ratingBar, float rating,
11                     boolean fromUser) {
12                 // TODO 自动生成的方法存根
13                 float rate=ratingBar.getRating();
14                 process.setProgress((int)(rate/5*100));
15             }
16         });
17     
18         seek.setOnSeekBarChangeListener(new  SeekBar.OnSeekBarChangeListener() {
19             
20             @Override
21             public void onStopTrackingTouch(SeekBar seekBar) {
22                 // TODO 自动生成的方法存根
23                 process.setProgress(seek.getProgress());
24             }
25             
26             @Override
27             public void onStartTrackingTouch(SeekBar seekBar) {
28                 // TODO 自动生成的方法存根
29                 
30             }
31             
32             @Override
33             public void onProgressChanged(SeekBar seekBar, int progress,
34                     boolean fromUser) {
35                 // TODO 自动生成的方法存根
36                 
37             }
38         });
39     }

这样我们就对进度条的控件有了初步了解。

2.Spinner控件

Spinner控件,下拉列表控件,和ComBox控件有点相似,使用的时候,也需要为他制定item。通过在String.xml

文件中添加新的字符串资源。在后台通过适配器将资源绑定给spinner控件。

 1     BaseAdapter baseA=new BaseAdapter(){
 2 
 3                 @Override
 4                 public int getCount() {
 5                     // TODO 自动生成的方法存根
 6                     return strid.length;
 7                 }
 8 
 9                 @Override
10                 public Object getItem(int position) {
11                     // TODO 自动生成的方法存根
12                     return null;
13                 }
14 
15                 @Override
16                 public long getItemId(int position) {
17                     // TODO 自动生成的方法存根
18                     return 0;
19                 }
20 
21                 @Override
22                 public View getView(int position, View convertView,
23                         ViewGroup parent) {
24                     // TODO 自动生成的方法存根
25                     LinearLayout li=new LinearLayout(MainActivity.this);
26                     TextView text1=new TextView(MainActivity.this);
27                     text1.setText(" "+getResources().getText(strid[position]));
28                     text1.setTextSize(24);
29                 li.addView(text1);
30                 return li;
31                 }};
32                 spinner.setAdapter(baseA);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏青蛙要fly的专栏

项目需求讨论-仿ios底部弹框实现及分析

hi,在项目开发中,有时候需要仿照ios的底部弹框做效果,比如我们在iPhone上面关闭定位的时候,就会弹出ios特有的底部弹框:

14630
来自专栏向治洪

android 自定义gallerey并实现预览功能

自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果。的确Horizon...

30050
来自专栏移动开发

AutoScrollTopBottomView

这个自定义控件是用来展示底层view的,当顶层的view滑动到底层view的中间时,顶层view会自动滚动到底层view的顶部或者底部,顶层view可以是scr...

13930
来自专栏Fish

EditText的监听

因为想做一个类似微信发送按钮的功能,即输入框有内容时就是发送按钮,没内容时是其他附加的功能,所以查了一下edittext的监听事件。具体代码如下 //设置文本变...

24250
来自专栏Android开发指南

8.滑动事件处理

388120
来自专栏Android干货

Android项目实战(四十七):轮播图效果Viewpager

40790
来自专栏水击三千

ImageButton与Button

1.Button控件 Butotn控件,主要用来实现一些命令操作,通过注册监听事件来实现。首先需要在xml文档中放入一个button按钮。 1 <But...

29590
来自专栏Android干货

Android项目实战(五):TextView自适应大小

389120
来自专栏肖蕾的博客

使用这个,自定义AlertDialog在你手里都不是问题

26070
来自专栏Android开发指南

7.侧滑、ViewDragHelper、属性动画

34650

扫码关注云+社区

领取腾讯云代金券