首页 > 代码库 > android学习---SeekBar和RatingBar
android学习---SeekBar和RatingBar
SeekBar 拖动条:拖动条和滚动栏类似,当是拖动条能够拖动滑块改变进度
RatingBar 星级评分条:星级评分条与拖动条相似
SeekBar特有的xml属性
android:thumb 指定一个Arawable对象,作为之定义滑块
RatingBar特有的xml属性
android:isIndicator 是否同意用户改变(true为不同意改动)
android:numStars 共同拥有多少个星级
android:rating 默认的星级
android:stepSize 每次至少改变多少个星级
为了知道改变的进度而做对应的操作,我们须要加入监听
SeekBar 的监听 OnSeekBarChangeListener
RatingBar的监听 OnRatingBarChangeListener
以下我们通过实例来熟悉它们
(1)编写布局文件 activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/imgView1" android:layout_width="120dp" android:layout_height="100dp" android:src=http://www.mamicode.com/"@drawable/ic_launcher"/>>(2)编写 MainActivity.java
package com.example.bar; import android.annotation.TargetApi; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.widget.ImageView; import android.widget.RatingBar; import android.widget.RatingBar.OnRatingBarChangeListener; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class MainActivity extends Activity { private ImageView imgViewSB = null; //定义ImageView private ImageView imgViewRB = null; private SeekBar seekBar = null; //定义SeekBar private RatingBar ratingBar = null; //定义RatingBar @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //布局组件 this.imgViewSB = (ImageView) findViewById(R.id.imgView1); this.imgViewRB = (ImageView) findViewById(R.id.imgView2); this.seekBar = (SeekBar) findViewById(R.id.seekBar); this.ratingBar = (RatingBar) findViewById(R.id.reatingBar); //seekBar设置监听,改变图片透明度 this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { Log.i("onStopTrackingTouch", "停止拖动触发的方法"); } @Override public void onStartTrackingTouch(SeekBar seekBar) { Log.i("onStartTrackingTouch", "開始拖动触发的方法"); } /** * seekBar: SeekBar对象 * progress:拖动条的进度 * fromUser:是否用户手动改变 */ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { imgViewSB.setAlpha(progress); //设置图片的透明度 Log.i("onProgressChanged", "拖动滑块位置发生改变时触发的方法"); } }); //ratingBar设置监听,改变图片透明度 this.ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { /** * ratingBar:RatingBar对象 * rating :星级的大小 * fromUser:是否用户手动改变 */ @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { imgViewRB.setAlpha((int)(rating*255/5)); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }同意之后,效果例如以下:
android学习---SeekBar和RatingBar
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。