android学习---SeekBar和RatingBar
16lz
2021-01-26
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="@drawable/ic_launcher"/> <SeekBar android:id="@+id/seekBar" android:layout_width="180dp" android:layout_height="wrap_content" android:thumb="@drawable/ic_launcher" android:max="255" android:progress="255"/> <ImageView android:id="@+id/imgView2" android:layout_width="120dp" android:layout_height="100dp" android:src="@drawable/img01"/> <RatingBar android:id="@+id/reatingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:max="255" android:progress="255" android:rating="5" android:stepSize="0.5" android:numStars="5"/> </LinearLayout>
(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; //定义ImageViewprivate ImageView imgViewRB = null;private SeekBar seekBar = null; //定义SeekBarprivate RatingBar ratingBar = null; //定义RatingBar@Overrideprotected 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() {@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {Log.i("onStopTrackingTouch", "停止拖动触发的方法");}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {Log.i("onStartTrackingTouch", "開始拖动触发的方法");}/** * seekBar: SeekBar对象 * progress:拖动条的进度 * fromUser:是否用户手动改变 */@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {imgViewSB.setAlpha(progress); //设置图片的透明度Log.i("onProgressChanged", "拖动滑块位置发生改变时触发的方法");}});//ratingBar设置监听,改变图片透明度this.ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {/** * ratingBar:RatingBar对象 * rating :星级的大小 * fromUser:是否用户手动改变 */@Overridepublic void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {imgViewRB.setAlpha((int)(rating*255/5));}});}@Overridepublic 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;}}
同意之后,效果例如以下:
更多相关文章
- 禁止ScrollView内的控件改变之后自动滚动
- Recyclerview条目可拖拽可侧滑删除实战详解
- android 同步监听输入框,以及电话号码正则表达式!
- android实现耳机插入和拔出状态检测
- Android(安卓)EditText设置InputType属性时,隐藏系统软键盘失败
- android轮播图示例
- Android开发历程_6(RadioButton和CheckBox的使用)
- Android(安卓)设计模式 之 观察者模式
- Android高德地图添加点连点画线