Android 拖动条SeekBar的简单使用
16lz
2021-01-23
在Android开发中,拖动条常常用于对系统某种数值的设置,例如播放视频和音量等都会用到拖动条SeekBar。SeekBar和进度条十分相似,只是拖动条可以通过滑动块的位置来标志数值,并且允许用户拖动滑动块来改变值。
1、SeekBar的常见的一些的属性
- style=”@android:style/Widget.SeekBar” 指定seekbar的样式
- android:max=”200” 指定seekbar的最大值为200,默认是100
- android:progress=”75”指定seekbar的当前值为75
- android:thumb 设置seekbar的滑动块样式
- android:progressDrawable 设置seekbar的进度条的样式
其中指定seekbar的当前值,我们也可以通过代码设置,如:seekBar.setProgress(75);
2、当拖动滑动块的位置的时候,为了监听SeekBar的拖动情况,我们可以为它绑定一个onSeekBarChangeListener监听器
package per.lijuan.seekbardome;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.SeekBar;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private SeekBar seekBar; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.progress); textView = (TextView) findViewById(R.id.text1); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // 当拖动条的滑块位置发生改变时触发该方法,在这里直接使用参数progress,即当前滑块代表的进度值 textView.setText("Value:" + Integer.toString(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { Log.e("------------", "开始滑动!"); } @Override public void onStopTrackingTouch(SeekBar seekBar) { Log.e("------------", "停止滑动!"); } }); }}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp"> <SeekBar android:id="@+id/progress" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/text1" android:maxHeight="2dp" android:minHeight="2dp" android:paddingBottom="3dp" android:paddingLeft="12dp" android:max="200" android:paddingRight="12dp" android:paddingTop="3dp" android:progressDrawable="@drawable/layer_progress" android:thumb="@drawable/shape_circle" /> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:gravity="left" android:padding="6dp" android:text="Value:0" android:textColor="#16BC5C" android:textSize="16dp" />RelativeLayout>
seekbar的滑动块样式 shape_circle.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#16BC5C" /> <stroke android:width="1dp" android:color="#16BC5C" /> <size android:height="20dp" android:width="20dp" />shape>
设置seekbar的进度条样式 layer_progress.xml
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <corners android:radius="3dp" /> <solid android:color="#ECF0F1" /> shape> item> <item android:id="@android:id/secondaryProgress"> <clip> <shape> <corners android:radius="3dp" /> <solid android:color="#C6CACE" /> shape> clip> item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="3dp" /> <solid android:color="#16BC5C" /> shape> clip> item>layer-list>
好啦,我们看看效果图呗:
3、除了自定义SeekBar的样式,我们也可以使用系统提供的SeekBar样式,例如:
(1)普通的
style="@android:style/Widget.SeekBar"
(2)DeviceDefault
style="@android:style/Widget.DeviceDefault.SeekBar"
(3)Holo
style="@android:style/Widget.Holo.SeekBar"
“`
好了,本篇文章就这样啦,存在总结不到位的地方还望指导,感谢^_^
更多相关文章
- Android控件之利用selector自定义的带文字的图片按钮
- Android 开发之Matrix图片处理类的使用
- Android H5和App交互以及打开图库上传图片并显示
- android之图片切圆角
- android:background="@drawable/"图片拉伸问题
- Android图片资源的缩放问题
- Android大图片导致内存问题小结
- Android预定义样式?android:attr/attribute、?attr/attribute和?
- Android imageview图片缩放实现