android seekbar

继承关系:

public class ProgressBar extends View {...}

public abstract class AbsSeekBar extends ProgressBar {...}

public class SeekBar extends AbsSeekBar {...}

Android系统提供了一个监听接口

SeekBar.OnSeekBarChangeListener
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        Log.e(TAG, "onProgressChanged: 当前进度=================" + progress);
        Log.e(TAG, "onProgressChanged: =====" + (fromUser ? "用户手动滑动" : "数据直接设置"));
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        Log.e(TAG, "onStartTrackingTouch: =================用户拖动开始");
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        Log.e(TAG, "onStopTrackingTouch: =================用户拖动结束");
    }
});

,要实现其监听功能只要实现其接口即可。在SeekBar中我们需要监听的主要有如下三个事件

  • 数值的改变(onProgressChanged).
  • 开始拖动(onStartTrackingTouch).
  • 停止拖动(onStopTrackingTouch).

属性介绍:

android:max   //设置值的大小 .
android:thumb="@drawable/"   //显示的那个可拖动图标,如果没有设置该参数则为系统默认,如果自己需要重新定义,
//则将自己需要的图标存放在资源目录 /res/drawable下,然后调用即可.
android:thumbOffset   //拖动图标的偏量值,可以让拖动图标超过bar的长度.
android:progress    //设置seekbar当前的默认值,范围0到max之间.
android:secondaryProgress //用过的迅雷的都知道拖动图标随着当前的播放时间的走动而走动,
//同时我们也注意到了也有个缓冲看到的进度条,这个属性就是用来设置默认显示的值为多少,
//范围为0到max.
android:progressDrawable //当我们不想使用系统默认的SeekBar时可以自己定义一个,
//这个资源文件就是用来调用我们自己定义的Seekbar图标的一般是在drawable下建立一个.xml文件s用layer-list来组织这些图标.

例子如下:

package com.example.administrator.myseekbar;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;

/*
* 拖动条类似进度条,不同的是拖动条用户可以控制
* */
public class MainActivity extends AppCompatActivity implements
        SeekBar.OnSeekBarChangeListener {

    //声明SeekBar 和 TextView对象
    private SeekBar mSeekBar;
    private TextView mProgressText;
    private TextView mTrackingText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //取得SeekBar对象
        mSeekBar = (SeekBar) findViewById(R.id.seek);
        mSeekBar.setOnSeekBarChangeListener(this);//设置监听器
        mProgressText = (TextView) findViewById(R.id.progress);
        mTrackingText = (TextView) findViewById(R.id.tracking);
    }

    //在拖动中--即值在改变
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,
                                  boolean fromUser) {
        //progress为当前数值的大小
        mProgressText.setText("当前值:" + progress);
    }

    //在拖动中会调用此方法
    @Override
    public void onStartTrackingTouch(SeekBar bar) {
        mTrackingText.setText("xh正在调节");
    }

    //停止拖动
    @Override
    public void onStopTrackingTouch(SeekBar bar) {
        mTrackingText.setText("xh停止调节");
    }
}

XML布局文件:

<SeekBar
        android:id="@+id/seek"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="50"
        android:thumb="@mipmap/ic_launcher"
        android:thumbOffset="20dip"
        android:secondaryProgress="75"/>

参考:

Android学习笔记–SeekBar

SeekBar属性

安卓seekBar的使用(初学者)

Android控件之SeekBar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值