首页 > 代码库 > ProgressBar、RatingBar和Spinner控件
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 <TextView12 android:id="@+id/textView1"13 android:layout_width="wrap_content"14 android:layout_height="wrap_content"15 android:text="@string/hello_world" />16 17 <ProgressBar18 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 <SeekBar27 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 <RatingBar36 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 <ProgressBar44 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 @Override10 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 @Override21 public void onStopTrackingTouch(SeekBar seekBar) {22 // TODO 自动生成的方法存根23 process.setProgress(seek.getProgress());24 }25 26 @Override27 public void onStartTrackingTouch(SeekBar seekBar) {28 // TODO 自动生成的方法存根29 30 }31 32 @Override33 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 @Override10 public Object getItem(int position) {11 // TODO 自动生成的方法存根12 return null;13 }14 15 @Override16 public long getItemId(int position) {17 // TODO 自动生成的方法存根18 return 0;19 }20 21 @Override22 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);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。