首页 > 本系吾专栏 > seekbar(深度解析SeekBar控件)

seekbar(深度解析SeekBar控件)

深度解析SeekBar控件

SeekBar控件的概述

SeekBar是Android平台中的一个常用控件,在音频、视频等应用中比较常见。SeekBar控件一般用于调节一些可变参数的取值,如音量、亮度等。SeekBar控件也可以自定义,设置不同的样式、颜色、滑块等。

SeekBar的基本使用

seekbar(深度解析SeekBar控件)

SeekBar的基本使用很简单,只需要在布局文件中添加“SeekBar”控件即可,比如:

<SeekBar     android:id=\"@+id/seekBar\"     android:layout_width=\"match_parent\"     android:layout_height=\"wrap_content\"/> 

这样就可以在界面中添加一个SeekBar控件。

seekbar(深度解析SeekBar控件)

SeekBar可以设置一些基本属性,包括:最大值、最小值、当前值、进度条颜色、滑块颜色等。在java代码中可以设置这些属性,如下:

seekbar(深度解析SeekBar控件)

SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);seekBar.setMax(100);seekBar.setProgress(50);seekBar.getProgressDrawable().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);seekBar.getThumb().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP); 

上面的代码中,设置了SeekBar的最大值为100,当前值为50,进度条颜色为蓝色,滑块颜色也为蓝色。

SeekBar的高级使用

SeekBar不仅支持基本属性设置,还可以自定义SeekBar的样式、颜色、滑块等。自定义SeekBar需要继承SeekBar类,重写onDraw方法,来实现自己想要的效果。

下面是一个自定义SeekBar控件的例子:

public class CustomSeekBar extends SeekBar {    private int mThumbSize = 50;    private Drawable mThumbDrawable;    private int mSeekBarHeight = 5;    private int mSeekBarColor = Color.BLUE;    public CustomSeekBar(Context context, AttributeSet attrs) {        super(context, attrs);        init();    }    private void init() {        mThumbDrawable = getResources().getDrawable(R.drawable.thumb);        mThumbDrawable.setBounds(0, 0, mThumbSize, mThumbSize);        setPadding(mThumbSize / 2, mThumbSize / 2, mThumbSize / 2, mThumbSize / 2);    }    @Override    protected synchronized void onDraw(Canvas canvas) {        Rect rect = new Rect(getPaddingLeft(),                getHeight() / 2 - mSeekBarHeight / 2,                getWidth() - getPaddingRight(),                getHeight() / 2 + mSeekBarHeight / 2);        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);        paint.setStyle(Paint.Style.FILL);        paint.setColor(mSeekBarColor);        canvas.drawRect(rect, paint);        int progress = getProgress();        float scale = (float) progress / getMax();        Drawable thumb = mThumbDrawable;        int thumbLeft = (int) (scale * (getWidth() - mThumbSize)) + getPaddingLeft();        int thumbTop = getHeight() / 2 - mThumbSize / 2;        thumb.setBounds(thumbLeft, thumbTop, thumbLeft + mThumbSize, thumbTop + mThumbSize);        if (progress == 100) {            thumb = getResources().getDrawable(R.drawable.thumb2);            thumb.setBounds(thumbLeft, thumbTop, thumbLeft + mThumbSize*2, thumbTop + mThumbSize*2);        }        thumb.draw(canvas);    }}

这个自定义SeekBar控件可以设置SeekBar的高度、进度条颜色、滑块大小以及滑块样式等等。

SeekBar控件的使用十分灵活,可以满足不同的需求。除了基本属性设置,还可以自定义SeekBar的样式,增加应用的美观性。SeekBar控件很容易上手,同时可以开发出很多实用的Android应用。

版权声明:《seekbar(深度解析SeekBar控件)》文章主要来源于网络,不代表本网站立场,不承担相关法律责任,如涉及版权问题,请发送邮件至3237157959@qq.com举报,我们会在第一时间进行处理。本文文章链接:http://www.bxwic.com/bxwzl/31254.html

seekbar(深度解析SeekBar控件)的相关推荐