Android自定义SeekBar的样式

原创 2016年08月28日 16:26:21

SeekBar就是拖动条,是继承自ProgressBar的。SeekBar与ProgressBar一样都是用来显示进度的,不同的SeekBar有一个可拖动的滑块,可以用来改变进度。所以SeekBar主要使用来实现对数值进行调节,如调节音量,亮度等。
但是Android系统的SeekBar的样式基本上是不能满足我们的需求,所以自定义SeekBar的样式就是必然的了。
SeekBar自定义样式与ProgressBar自定义样式一样,都是通过自定义一个drawable资源文件作为progressDrawable属性值来实现。
自定义SeekBard的样式:

1.在res/drawable中定义一个资源文件 seekbar.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"
        android:drawable="@color/progress_bg"></item>
    <item android:id="@android:id/secondaryProgress">
        <scale
            android:drawable="@color/second_progress"
            android:scaleWidth="100%">
        </scale>
    </item>
    <item android:id="@android:id/progress">
        <scale
            android:drawable="@color/progress"
            android:scaleWidth="100%"></scale>
    </item>
</layer-list>

第一个item定义的是进度条的背景,第二个item定义的是secondaryProgress的颜色,第三个item定义的是进度progress的颜色
定义progressDrawable的时候,必须要按照这个顺序(如果没有secondaryProgress可以去掉)来定义,并且secondaryProgress
和progress定义drawable时都必须用< scale/>子项,否则进度条会一直显示满的状态。

2.这里滑块我们也是用自定义的,在res/drawable中定义一个资源文件
mythumb.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="@color/colorAccent"></solid>
    <size
        android:width="10dp"
        android:height="10dp"></size>
</shape>

定义了一个圆点作为thumb

3.在布局文件中使用SeekBar,并使用自定义的样式

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="maqing.seekbardemo.MainActivity">
    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxHeight="5dp"
        android:minHeight="5dp"
        android:progressDrawable="@drawable/seekbar"
        android:thumb="@drawable/mythumb" />
</RelativeLayout>

使用SeekBar的时候要注意,这里设置了android:minHeight和android:maxHeight属性,用这两个属性来设置进度条的高度,
而android:layout_height设为wrap_content,不要把android:layout_height设置为具体的值,否则thumb会不在SeekBar的中间。

这样就完成了一个自定义样式的SeekBar,效果如下:

点击下载源码

版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓开发根据RGB显示颜色

  • 2016年08月19日 19:02
  • 692KB
  • 下载

Android学习之通过SeekBar调节布局背景颜色(RGB)

用RGB设置布局背景颜色的方法 relativeLayout.setBackgroundColor(Color.rgb(r,g,b));布局文件 ...
  • kh971024
  • kh971024
  • 2017年11月01日 21:17
  • 164

Android 使用SeekBar时动态显示进度且随SeekBar一起移动

好久没有更新博客了!在滑动SeekBar的时候,要同时显示进度,而且通常要求最小值比0小,按照惯例,先看看效果图: 一、自定义控件 用于在SeekBar上方,跟随Se...
  • qq_20785431
  • qq_20785431
  • 2017年05月31日 23:04
  • 2177

Android开发之seekbar动态显示进度

之前很想实现一种效果:Android使用SeekBar时动态显示进度且随SeekBar一起移动,嘿嘿,看过程!...
  • itluochen
  • itluochen
  • 2016年08月09日 16:43
  • 2029

一个简单的自定义SeekBar样式

自定义SeekBar的Xml文件
  • u014039918
  • u014039918
  • 2016年07月18日 21:25
  • 954

android SeekBar 样式设置(包含自定义样式)

android SeekBar 三种样式设置,一般都能满足项目需求                     Xml代码   SeekBar          a...
  • qq_22118507
  • qq_22118507
  • 2016年06月02日 19:30
  • 2263

圆形进度SeekBar

  • 2017年09月19日 15:08
  • 14.34MB
  • 下载

SeekBar学习

SeekBar
  • wen0006
  • wen0006
  • 2010年06月26日 12:38
  • 4754

android SeekBar的自定义样式设置

android自带的seekbar样式不是很好看,我们在项目开发中,经常需要对其进行美化或者重写。 我在项目需要改成如下这个样式: 其实这个改动还是比较简单的 xml文件如下: ...
  • huashanjuji
  • huashanjuji
  • 2016年05月13日 16:59
  • 1664

Android笔记之SeekBar自定义样式与监听

android中,在播放音乐或视频时,有一条进度条在显示,使用的就是SeekBar控件,我们先来看看效果: 第一个是原生的,第2,3个是自定义样式,很显然,原生的并不能实现很好看的效果,那么下面...
  • JACKLIAO1
  • JACKLIAO1
  • 2015年06月13日 17:26
  • 4196
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android自定义SeekBar的样式
举报原因:
原因补充:

(最多只允许输入30个字)