android 自定义 seekbar,Android自定义控件 带文字提示的SeekBar

b753c4a9ddfa

封面

1.写在前面

SeekBar控件在开发中还是比较常见的,比如音视频进度、音量调节等,但是原生控件有时还不能满足我们的需求,今天就来学习一下如何自定义SeekBar控件,本文主要实现了一个带文字指示器效果的SeekBar控件,看下最终效果:

b753c4a9ddfa

IndicatorSeekBar

2.实现

IndicatorSeekBar

public class IndicatorSeekBar extends AppCompatSeekBar {

// 画笔

private Paint mPaint;

// 进度文字位置信息

private Rect mProgressTextRect = new Rect();

// 滑块按钮宽度

private int mThumbWidth = dp2px(50);

// 进度指示器宽度

private int mIndicatorWidth = dp2px(50);

// 进度监听

private OnIndicatorSeekBarChangeListener mIndicatorSeekBarChangeListener;

public IndicatorSeekBar(Context context) {

this(context, null);

}

public IndicatorSeekBar(Context context, AttributeSet attrs) {

this(context, attrs, R.attr.seekBarStyle);

}

public IndicatorSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

init();

}

private void init() {

mPaint = new TextPaint();

mPaint.setAntiAlias(true);

mPaint.setColor(Color.parseColor("#00574B"));

mPaint.setTextSize(sp2px(16));

// 如果不设置padding,当滑动到最左边或最右边时,滑块会显示不全

setPadding(mThumbWidth / 2, 0, mThumbWidth / 2, 0);

// 设置滑动监听

this.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

// NO OP

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

if (mIndicatorSeekBarChangeListener != null) {

mIndicatorSeekBarChangeListener.onSt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值