Android攻城狮SeekBar制作可拖动的进度条

摘要:
SeekBar可以通过滑块的位置来识别值,拖动条允许用户拖动滑块以更改进度值的大小-------------------------由于SeekBar的事件可以由用户通过拖动条来控制,因此有必要监视其事件,这需要实现SeekBar OnSeekBarChangeListener接口。此界面总共需要监听三个事件:ProgressChanged上的值更改开始拖动StartTrackingTouch上的停止拖动StopTrackingTouch使用SeekBar创建可拖动的进度条:1.在xml中添加标记SeekBar和两个TextView以显示状态--在没有操作的情况下--˃3。在main.xml下的SeekBar中添加属性:android:tumb=“@drawable/my_thumb”。
SeekBar介绍
听歌的时候,我们常常喜欢快进或者退回到某一时间段、喜欢控制音量大小。SeekBar可以通过滑块的位置来标识数值,而且拖动条允许用户拖动滑块来改变进度值的大小。
--------------------
SeekBar的主要属性和方法:
由于 SeekBar 是 PrograssBar 的子类,所以方法和属性也是类似的。
(1)setMax ——设置SeekBar的最大数值
(2)setProgress ——设置SeekBar当前的数值
(3)setSecondaryProgress——设置SeekBar的第二数值,即当前拖动条推荐的数值。
-----------------------
SeekBar的事件
由于拖动条可以被用户控制,所以需要对其进行事件监听,这就需要实现 SeekBar.OnSeekBarChangeListener接口。此接口共需要监听三个事件:
	数值改变 onProgressChanged
	开始拖动 onStartTrackingTouch
	停止拖动 onStopTrackingTouch

使用SeekBar制作可拖动的进度条的步骤:
1. 在main.xml中添加标签 SeekBar 和两个 TextView用于显示状态。
2. 在MainActivity中创建并初始化SeekBsr和TextView.
3. 为了监听用户的手势,需要监听器,令 MainActivity 实现接口 OnSeekBarChangeListener,并重写3个方法:
    //数值改变的时候调用
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
        textView1.setText("正在拖动");
        textView2.setText("当前进度:"+progress);
    }
    //开始拖动的时候调用
    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        textView1.setText("开始拖动");
    }
    //停止拖动的时候调用
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        textView1.setText("停止拖动");
    }
4. SeekBar加载监听器。



自定义SeekBar进度条
SeekBar类似之前学的ProgressBar,都可以改变进度条的样式,但SeekBar还能改变滑块的样式。
android:progressDrawable="@drawable/seekbar_img"(改变进度条的样式)
android:thumb="@drawable/thumb"(改变滑块的样式)

自定义滑块样式的步骤:
1. 在 drawale文件夹中创建资源文件 normal.png、select.png 作为滑块的模型;
2. 在 drawale文件夹中创建选择器selector资源文件 my_thumb.xml,在selector中添加代码:
<!--按压的情况下-->
<item android:drawable="@drawable/select" android:state_pressed="true" android:state_window_focused="true"></item>
<!--获取到焦点的情况下-->
<item android:drawable="@drawable/select" android:state_focused="true" android:state_window_focused="true"></item>
<!--被选中的情况下-->
<item android:drawable="@drawable/select" android:state_selected="true" android:state_window_focused="true"></item>
<!--无操作的情况下-->
<item android:drawable="@drawable/normal"></item>
3. 在 main.xml 下的 SeekBar 添加属性:
android:thumb="@drawable/my_thumb"。
-------------------------
自定义进度条样式的步骤:
和前面学的 ProgressBar 完全一样。
添加完需要的资源文件后,在 SeekBar中添加属性:android:progressDrawable="@drawable/progress_bar"

 1 //可拖动的进度条,它的监听事件:OnSeekBarChangeListener 
 2 //自定义进度条滑块样式————在drawable文件夹下
 3 public class MainActivity extends Activity implements OnSeekBarChangeListener {
 4     private SeekBar seekBar;
 5     private TextView textView, textView2;
 6 
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.main);
11         seekBar = (SeekBar) findViewById(R.id.seekbar);
12         textView = (TextView) findViewById(R.id.text1);
13         textView2 = (TextView) findViewById(R.id.text2);
14         seekBar.setOnSeekBarChangeListener(this);
15 
16     }
17 
18     // 数值改变
19     @Override
20     public void onProgressChanged(SeekBar seekBar, int progress,
21             boolean fromUser) {
22         // TODO Auto-generated method stub
23         textView.setText("正在拖动");
24         textView2.setText("当前数值:" + progress);
25 
26     }
27 
28     // 开始拖动
29     @Override
30     public void onStartTrackingTouch(SeekBar seekBar) {
31         // TODO Auto-generated method stub
32         textView.setText("开始拖动");
33     }
34 
35     // 停止拖动
36     @Override
37     public void onStopTrackingTouch(SeekBar seekBar) {
38         // TODO Auto-generated method stub
39         textView.setText("停止拖动");
40     }
41 
42 }
----自定义滑块的选择器------
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/yes" android:state_pressed="true" android:state_window_focused="true"></item>
    <item android:drawable="@drawable/yes" android:state_focused="true" android:state_window_focused="true"></item>
    <item android:drawable="@drawable/yes" android:state_selected="true" android:state_window_focused="true"></item>
    <item android:drawable="@drawable/no" ></item>

</selector>


Android攻城狮SeekBar制作可拖动的进度条第1张



免责声明:文章转载自《Android攻城狮SeekBar制作可拖动的进度条》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#将类对象转换为字典nginx+lua 设置跨域下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python攻城狮教你用Pythin开机和关机,关机只需一条执行命令

本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6260.html 本文目标 远程开机原理 Python 远程开机代码实现 Python 关机说明 Python 开机 关于用程序来开机,是怎么做到的呢?这就是 WOL 技术 Wake-On-Lan, 利用计算机在关机或休眠状态时,网卡及主板部分仍然有微弱的供...

android学习SeekBar的使用

SeekBar介绍听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,而且拖动条允许用户拖动滑块来改变进度条的大小SeekBar的主要属性和方法(1)setMax --- 设置SeekBar的最大数值(2)setProgress --- 设置SeekBar的当前数值(3)setSec...

Android——悬浮窗+侧边弹框+淡入淡出+背景shape+SeekBar调节手机亮度

悬浮窗实现原理:  悬浮窗要实现,需要用到几个关键的类。  WindowManager:声明了 addView() 、updateViewLayout()、removeView()三个方法的接口     要创建出悬浮窗:那就得使用addView(布局对象,布局参数)方法     要更新悬浮窗的数据,如实现拖动悬浮框:那就得使用updateViewLayou...

Android 设置SeekBar不可拖动

public class MyProgressBar extends SeekBar { /** * 是否支持拖动进度 */ private boolean touch = true; public MyProgressBar(Context context, AttributeSet attrs) {...

anaconda的虚拟环境sklearn中如何安装pandas

1.打开anaconda的虚拟环境sklearn 2.在命令行中输入conda install pandas回车,我的这边又是漫长等待 3.不妨换一种方式输入pip install pandas回车  4.这样就迅速安装成功了 关注小关,带你脱坑! 希望能帮到大家,问你们要一个赞,你们会给吗,谢谢大家版权声明:本文版权归作者(@攻城狮小关)和博客园共有,...