SeekBar扩展自ProgressBar——在ProgressBar的基础上添加了一个用户可以拖拽的thum。 SeekBar.OnSeekBarChangeListener是接收SeekBar进度改变的监听器。

SeekBar的使用方法类似于ProgressBar,今天主要通过自定义SeekBar的样式来学习SeekBar。自定义SeekBar样式有一点与ProgressBar不同——自定义部分需要两部分android:progressDrawable="@drawable/seek_bar_style" 和android:thumb="@drawable/seek_bar_thum" 。 android:progressDrawable 用于指定水平长条的样式,android:thumb用于指定thum的样式。下图为最后的样式:

1、seek_bar_style.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">
<shape>
<corners android:radius="10dip" /> <gradient
android:centerColor="#ffBBBBBB"
android:endColor="#ffCC66FF"
android:startColor="#ffDDDDDD" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="10dip" /> <gradient
android:centerColor="#ffffb600"
android:endColor="#ffffcb00"
android:startColor="#ffffd300" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dip" /> <gradient
android:centerColor="#ff00ff00"
android:endColor="#ffffffff"
android:startColor="#3fF0ff30" />
</shape>
</clip>
</item> </layer-list>

2、seek_bar_thum.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners
android:radius="10dip"></corners>
<gradient
android:startColor="#FFff0000"
android:centerColor="#ff00FF00"
android:endColor="#ff003dff"
android:type="sweep"
android:centerX="50%"
android:centerY="50%"></gradient>
<size android:width="20dip"
android:height="20dip"/> </shape>

3、activity——WidgetSeekBarActivity,内容很简单

package com.xy.zt.selfdefinewieget;

import android.app.Activity;
import android.os.Bundle; public class WidgetSeekBarActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.widget_seek_bar_layout);
} }

4、在ViewData.java中添加如下内容(此部分内容可选)

public static final int SEEK_BAR_ID = RATING_BAR_ID + 1;
public static final String SEEK_BAR_NAME = "SeekBar";
private static final ViewData mSeekBar = new ViewData(SEEK_BAR_NAME,
SEEK_BAR_ID);
View_Datas.add(mSeekBar);

在WidgetsAdapter的handleItemClicked中添加如下内容

case ViewData.SEEK_BAR_ID:
intent.setClass(mContext, WidgetSeekBarActivity.class);
mContext.startActivity(intent);
break;

以上为SeekBar控件的全部内容,下一个控件 QuickContactBadge。

一步一步学android控件(之二十五)—— SeekBar的更多相关文章

  1. 一步一步学android控件(之十五) —— DegitalClock & AnalogClock

    原本计划DigitalClock和AnalogClock单独各一篇来写,但是想想,两个控件的作用都一样,就和在一起写一篇了. DegitalClock和AnalogClock控件主要用于显示当前时间信 ...

  2. 一步一步学android控件(之十六)—— CheckBox

    根据使用场景不同,有时候使用系统默认的CheckBox样式就可以了,但是有时候就需要自定义CheckBox的样式.今天主要学习如何自定义CheckBox样式.在CheckBox状态改变时有时需要做一些 ...

  3. 一步一步学android控件(之六) —— MultiAutoCompleteTextView

    今天学习的控件是MultiAutoCompleteTextView . 提到MultiAutoCompleteTextView 我们就自然而然地想到AutoCompleteTextView ,就想知道 ...

  4. Android控件大全(二)——Toolbar

    1.隐藏Actionbar 代码中设置:requestWindowFeature(Window.FEATURE_NO_TITLE)     //如果Activity是继承自AppCompatActiv ...

  5. Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

    前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep. -keep class com.hyphenate.** {*;} ...

  6. Android核心分析之二十五Android GDI之共享缓冲区机制

    Androird GDI之共享缓冲区机制 1  native_handle_t对private_handle_t 的包裹     private_handle_t是gralloc.so使用的本地缓冲区 ...

  7. Android Studio 使用教程(二十五)之运行Android Studio工程

    一.Android虚拟设备入口 上期我们使用了Android Studio创建了HeloWorld工程,要想运行该工程,首先需要一个Android虚拟设备来模拟Android程序的运行. 重新打开An ...

  8. Android 控件架构及View、ViewGroup的测量

    附录:示例代码地址 控件在Android开发的过程中是必不可少的,无论是我们在使用系统控件还是自定义的控件.下面我们将讲解一下Android的控件架构,以及如何实现自定义控件. 1.Android控件 ...

  9. Android控件TextView的实现原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...

随机推荐

  1. thinkphp给图片打水印不清晰

    项目中打印条形码的函数,从thinkphp自带的water函数修改而来的. 贴上代码: /** * water2 * 改写thinkphp的water函数更强健的函数,增加了写入位置参数 去掉了alp ...

  2. [转载]如何重装Grub,使其可以引导双系统

    引言: GRUB是一个多重操作系统的启动管理器.用来引导不同的系统,如windows,Linux.一般来说要先装Windows,后装Linux,这样grub才能生效(grub存在于linux的安装中) ...

  3. 在同一台机器上让Microsoft SQL Server 2000/ SQL2005/ SQL2008共存

    可能很多朋友都遇到想同时在自己的机器上运行Microsoft SQL Server 2000以及Microsoft SQL Server 2005和Microsoft SQL Server 2008. ...

  4. CPU/寄存器/内存

    因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来. CPU,全名Central Processing Unit(中央处理器). ...

  5. c++ 最短路两种算法

    最短路是个老问题了,大神们留下很多文档但是很多都是针对算法使用一些固定大小的数组进行数据存储在实际应用中受到限制,这里自己练习一下,主要用了一些c++的stl,减少了固定长度数组的依赖,换一种写法试图 ...

  6. Spring实战——无需一行xml配置实现自动化注入

    已经想不起来上一次买技术相关的书是什么时候了,一直以来都习惯性的下载一份电子档看看.显然,如果不是基于强烈的需求或强大的动力鞭策下,大部分的书籍也都只是蜻蜓点水,浮光掠影. 就像有位同事说的一样,有些 ...

  7. Android源码学习之装饰模式应用

    首先得了解最基础的装饰器模式 参考 设计模式之八 --- 装饰模式(Decorator) 参考链接:http://blog.csdn.net/cjjky/article/details/7478788 ...

  8. ORACLE 定时任务JOB

    http://www.cnblogs.com/xclw/archive/2009/12/04/1616945.html

  9. Linux技术修复

    今天在慕课网上学习了Linux的一些知识: 我使用命令: ***:~$ route add default gw 192.168.1.1 添加了一个网关:192.168.1.1之后的结果为: ***: ...

  10. BZOJ 1003: [ZJOI2006]物流运输trans DP+最短路

    Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...