2015-04-24

SeekBar:

一种特殊的进度条,包含一个滑块用于调节进度值。

API 中目录结构如下:


包含几种特殊的属性:

1: max:设置进度条的最大值 。对应方法:setMax(int max); max=100,代表它的取值范围是0-100,共101个值;

2: progress: 设置默认的进度值 对应有方法: setProgress(int progress);

3:secondaryProgresss : 设置默认缓冲值 对应的方法 setSecondaryProgress(int  secondaryProgresss );


以上的方法和成员都是继承自ProgressBar;而SeekBar自带的特殊属性如下:

4:thumb : 滑块属性,应该对应是一个drawable资源;

5:progressDrawable,表示SeekBar的背景图片

6:SeekBar类包含一个setOnSeekBarChangeListener的方法。当用户使用seekBar的时候会触动该方法,一般用于设置监听事件

SeekBar.OnSeekBarChangeListener:是一个public static interface 。包含有三个方法:

用户在使用时必须实现该接口中的方法,或者使用匿名内部类。

二:用户自定义的SeekBar样式:

当前的SeekBar不能满足用户需求的时候,我们可以自定义SeekBar来实现各自想要的功能和视觉体验。

简单的自定义:在xml中自定义,可以实现不同的背景图和滑块,让SeekBar 的UI体验更好。

复杂的自定义:用java代码重写MySeekBar代码extends SeekBar;可以给MySeekBar添加一些控件和功能。

先看看简单的实现:

自定义SeekBar的滑块定义为:android:thumb="@drawable/thumb_bar"。

这时需要在res/drawable文件下自定义一个thumb_bar.xml

它调用的thumb_bar.xml的内容如下

<?xml version="1.0" encoding="UTF-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 按下状态 -->

<item android:state_pressed="true"

android:drawable="@drawable/thumb_dn" />

<!-- 焦点状态 -->

<item android:state_focused="true"

android:drawable="@drawable/thumb_up" />

<!-- 默认状态 -->

<item android:drawable="@drawable/thumb_up" />

</selector>

//注释:以上代码来源网上

注意图中的Selector 标记和状态标记。通过Selector可以在不同状态中选择不同的图片,比如当用户按下时,用A照片,不按时用B照片。

自定义SeekBar背景图的实现:android:progressDrawable="@drawable/bg_bar"。

与自定义的滑块实现机制差不多:都是在属性中引用一个XML文件,然后在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="@drawable/bar_dn" />

<!-- 第二进度图 -->

<item android:id="@+android:id/SecondaryProgress" android:drawable="@drawable/bar_dn" />

<!-- 进度度 -->

<item android:id="@+android:id/progress" android:drawable="@drawable/bar_up" />

</layer-list>

===============================================================

标记的作用:layer-list:layer-list可以将多个图片按照顺序层叠起来。其中的Item有两个重要的xml属性:android:id 和 android:drawable属性。

       

                  

//注释:图片资源;来源网络

最终结果显示如下:

Android之SeekBar总结(一)的更多相关文章

  1. Android自定义Seekbar拖动条式样

    SeekBar拖动条可以由用户控制,进行拖动操作.比如,应用程序中用户需要对音量进行控制,就可以使用拖动条来实现. 1.SeekBar控件的使用 1.1SeekBar常用属性 SeekBar的常用属性 ...

  2. android之SeekBar控件用法

    MainActivity.java package com.example.mars_2400_seekbar; import android.support.v7.app.ActionBarActi ...

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

    最近有做一个android项目,里面有使用到在播放视频时可以跳播,同时动态显示播放时间.类似于下图 的效果,我只是抽取其中的一部分做展示,刚接到这个事时也是在网上一通找,最后没找到!而且还碰到有些朋友 ...

  4. 从零開始学android&lt;SeekBar滑动组件.二十二.&gt;

    拖动条能够由用户自己进行手工的调节,比如:当用户须要调整播放器音量或者是电影的播放进度时都会使用到拖动条,SeekBar类的定义结构例如以下所看到的: java.lang.Object    ↳ an ...

  5. android学习---SeekBar和RatingBar

    SeekBar 拖动条:拖动条和滚动栏类似,当是拖动条能够拖动滑块改变进度 RatingBar 星级评分条:星级评分条与拖动条相似 SeekBar特有的xml属性 android:thumb    指 ...

  6. android 垂直 SeekBar 源代码(VerticalSeekBar)[转]

    主要是继承 AbsSeekBar 然后修改下面这些方法 onProgressRefresh() //当进度条数据更新的时候,例如我们拖动滑动条的时候,这个方法被调用 setThumbPos() //这 ...

  7. Android的SeekBar和RateBar的使用-android学习之旅(三十二)

    SeekBar简介 SeekBar允许用户拖动,进行调节经常用于音量调节等方面. android:thumb设置drawable对象来表示拖动的物体. setOnSeekBarChangeListen ...

  8. Android使用SeekBar

    转自:http://my.oschina.net/pingdy/blog/376735 最近有做一个android项目,里面有使用到在播放视频时可以跳播,同时动态显示播放时间.类似于下图 的效果,我只 ...

  9. android中SeekBar拖动进度条的使用及事件监听

    下面和大家分享一下android中SeekBar拖动进度条的使用,以及事件监听.拖动进度条的事件监听需要实现SeekBar.OnSeekBarChangeListener接口,调用SeekBar的se ...

  10. Android开发 SeekBar(拖动条)的使用

    SeekBar是Progress的子类,Progress主要用来显示进度,但是不能和用户互动,而SeekBar则可以供用户进行拖动改变进度值 实现拖动进度条并显示在文本中: <?xml vers ...

随机推荐

  1. 2017.11.18 C语言的算法分析题目

    算法分析 1. 选定实验题目,仔细阅读实验要求,设计好输入输出,按照分治法的思想构思算法,选取合适的存储结构实现应用的操作. 2. 设计的结果应在Visual C++ 实验环境下实现并进行调试.(也可 ...

  2. c#无限循环

    for( ; ; ) 最快的 while(true) while(1)             ?好像也是不过就是扫到的 public bool a= true; 中断一个循环while(a) a=f ...

  3. cookie和session的介绍

    1.cookie和session cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此产生cookie. cookie的工作原理是:由服务器产生 ...

  4. react中内联样式的z-index不起作用.

    <div style={{z-index: -100}} > hello,money. </div> 以上z-index样式如上写法是不起作用,原因是在react中内联样式的写 ...

  5. 洛谷P2759 奇怪的函数(log 二分)

    题目描述 使得 x^xxx 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^xxx 达到 n 位数字的最小正整数 x 输入输出样例 输 ...

  6. 简版会员私信表设计及sql 私信列表查询

    先上下表结构和数据 DROP TABLE IF EXISTS `message`; CREATE TABLE `message` ( `id` int(11) NOT NULL AUTO_INCREM ...

  7. js动画之无缝滚动

    效果图如下: HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  8. Python__关于列表的引用 以append操作为例

    对于列表这样的可变类型来说,对它操作是不会改变内存地址的. 若列表里面存的元素是整数这样的不可变类型,若修改这个元素那地址还是会改变,如: >>> a = [,,] >> ...

  9. mysql悲观锁与乐观锁

    简介 数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性. 用途 乐观锁和悲观锁是并发控制主要采用的技术手段.无论是悲观 ...

  10. PyQuery网页解析库

    from pyquery import PyQuery as pq 字符串初始化: doc = pq(html) URL初始化:doc = pq(url = "···") 文件初始 ...