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

经常用法
public SeekBar(Context context)
构造
创建SeekBar类的对象
public void setOnSeekBarChangeListener(
SeekBar.OnSeekBarChangeListener l)
普通
设置改变监听操作
public synchronized void setMax(int max)
普通
设置增长的最大值
public static interface SeekBar.OnSeekBarChangeListener{
/**
 * 開始拖动时触发操作
 * @param seekBar 触发操作的SeekBar组件对象
 */
public abstract void onStartTrackingTouch(SeekBar seekBar) ;
/**
 * @param seekBar 触发操作的SeekBar组件对象
 * @param progress 当前的进度值
 * @param fromUser 是否为用户自己触发
 */
public abstract void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) ;
/**
 * 停止拖动时触发操作
 * @param seekBar 触发操作的SeekBar组件对象
 */
public abstract void onStopTrackingTouch(SeekBar seekBar) ;
}

主要的使用
xml文件
<span style="font-size:18px;"><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"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><SeekBarandroid:max="100"android:progress="30"android:id="@+id/seekBar1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_marginTop="60dp" /><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/seekBar1"android:layout_below="@+id/seekBar1"android:layout_marginLeft="28dp"android:layout_marginTop="32dp"android:text="seek1"android:textAppearance="?android:attr/textAppearanceMedium" /><SeekBarandroid:id="@+id/seekBar2"android:max="100"android:secondaryProgress="60"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/textView1"android:layout_marginTop="67dp" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/textView1"android:layout_below="@+id/seekBar2"android:layout_marginTop="28dp"android:text="seek2"android:textAppearance="?android:attr/textAppearanceMedium" /></RelativeLayout>
</span>

java文件

<span style="font-size:18px;">package com.example.seekbar;import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;public class MainActivity extends Activity implements OnSeekBarChangeListener{private TextView textView1,textView2;private SeekBar seekBar1,seekBar2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView1=(TextView)this.findViewById(R.id.textView1);textView2=(TextView)this.findViewById(R.id.textView2);seekBar1=(SeekBar)this.findViewById(R.id.seekBar1);seekBar2=(SeekBar)this.findViewById(R.id.seekBar2);seekBar1.setOnSeekBarChangeListener(this);seekBar2.setOnSeekBarChangeListener(this);}@Overridepublic void onProgressChanged(SeekBar seekBar, int position, boolean flag) {// TODO Auto-generated method stubif (seekBar.getId()==seekBar1.getId()){textView1.setText("当前seekbar1刻度"+position);}else {textView2.setText("当前seekbar2刻度"+position);}}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubif (seekBar.getId()==seekBar1.getId()){textView1.setText("開始滑动seek1");}else {textView2.setText("開始滑动seek2");}}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubif (seekBar.getId()==seekBar1.getId()){textView1.setText("停止滑动seek1");}else {textView2.setText("停止滑动seek2");}}}
</span>

效果图

使用seekbar来控制屏幕的亮度
xml文件
<span style="font-size:18px;"><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"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="24dp"android:text="调节手机亮度" /><SeekBarandroid:max="100"android:id="@+id/seekBar1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignLeft="@+id/textView1"android:layout_below="@+id/textView1"android:layout_marginTop="117dp"android:progress="50" /></RelativeLayout></span>

JAVA文件

<span style="font-size:18px;">package com.example.seekbardemo;import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;public class MainActivity extends Activity implements OnSeekBarChangeListener {
private SeekBar myseekBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);myseekBar=(SeekBar)this.findViewById(R.id.seekBar1);myseekBar.setOnSeekBarChangeListener(this);}@Overridepublic void onProgressChanged(SeekBar seekBar, int position, boolean flag) {// TODO Auto-generated method stub}
//调节亮度的方法private void setScreenBrightness(float num) {WindowManager.LayoutParams layoutParams = getWindow().getAttributes();       // 取得window属性layoutParams.screenBrightness = num;          // num已经除以100super.getWindow().setAttributes(layoutParams); // 0~1之间}@Overridepublic void onStartTrackingTouch(SeekBar arg0) {// TODO Auto-generated method stub}//在拖动结束是使用getProgress获得当前的Progress值来设置亮度@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubif (seekBar.getId()==myseekBar.getId()) {
//          将progress除以100并转换为float类型setScreenBrightness((float)seekBar.getProgress()/100);}}}
</span>

效果图

改变后
当然,使用SeekBar组件也能够对音量进行控制,大家能够查询相关API自行尝试
下节预报:RatingBar评分组件

从零開始学androidlt;SeekBar滑动组件.二十二.gt;相关推荐

  1. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  2. 從零開始學 ReactJS:最完整的 React 生態系入門教程

    转自:https://github.com/kdchang/reactjs101 從零開始學 ReactJS(ReactJS 101)是一本希望讓初學者一看就懂的 ReactJS 中文入門教學書,由淺 ...

  3. 零基础带你学习MySQL—单行子查询和多行子查询(二十二)

    零基础带你学习MySQL-多行子查询(二十二) 一.什么是子查询? 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 二.什么是单行子查询? 单行子查询是指只返回一行数据的子查 ...

  4. 零基础带你学习MySQL—分组统计(十二)

    零基础带你学习MySQL-分组统计(十二) 如何理解分组 ? 课后练习题

  5. 【零基础入门前端系列】—背景属性(十二)

    [零基础入门前端系列]-背景属性(十二) 一.背景属性 CSS背景属性主要有以下几个: CSS3中可以通过background-image属性添加背景图片. 不同的背景图像和图像用逗号隔开,所有的图片 ...

  6. 从零開始学习制作H5应用——V5.0:懊悔机制,整理文件夹,压缩,模板化

    经过前面四个版本号的迭代.我们已经制作了一个从视觉和听觉上都非常舒服的H5微场景应用,没有看过的请戳以下: V1.0--简单页面滑动切换 V2.0--多页切换.透明过渡及交互指示 V3.0--增加lo ...

  7. [Golang] 从零開始写Socket Server(3): 对长、短连接的处理策略(模拟心跳)

    通过前两章,我们成功是写出了一套凑合能用的Server和Client,并在二者之间实现了通过协议交流.这么一来,一个简易的socket通讯框架已经初具雏形了,那么我们接下来做的.就是想办法让这个框架更 ...

  8. Spring 从零開始-05

    最终能到Spring的AOP编程了,AOP的概念特别的多.所以须要你在開始之前有点了解,然后通过代码慢慢学习! - 切面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象.事务管 ...

  9. opengl微开发之1-从零開始

    对OpenGL有一点了解之后,如今開始真正编写代码. 今天的内容: 使用FreeGLUT创建OpenGL的上下文环境 初始化GLEW 创建一个OpenGL的的模板范例 第一步: 一个OpenGL的上下 ...

最新文章

  1. 1、输入四个整数,按照从小到大顺序输出。(20分)
  2. pom.xml设置mysql连接_maven工程配置pom.xml实现mybatis的访问数据库操作
  3. [译] Android 上一次编写,随处测试
  4. singleton模式四种线程安全的实现
  5. 冷却负载、人为因素影响传统数据中心效率
  6. 从头开始敲代码之《从BaseApplication/Activity开始》
  7. 欢乐纪中某A组赛【2019.7.12】
  8. 如何使用Git上传项目代码到github
  9. MySQL数据丢失情况分析
  10. c语言中格式字符e E g G,C语言输出格式总结
  11. Java8流List转Map
  12. 数学分析习题课讲义习题-第2章-2.4
  13. PERT图之事件、活动、松弛时间、关键路径
  14. 职场英语:英语邮件常用英语
  15. php doctrine,Doctrine学习笔记 —— 1
  16. 【CSAPP】计算机系统漫游
  17. Android 从系统媒体库中选择视频
  18. JS+CSS防FLASH效果竖向可折叠的滑动菜单
  19. [心灵] 我对这个世界充满了想象力和好奇心
  20. php transfer-encoding: chunked,“Transfer-Encoding: chunked” header in PHP

热门文章

  1. 腾讯云yum操作实现CentOS 7.6 64位Linux系统图形界面的安装和vnc的搭建
  2. 全球及中国沼气发电行业现状及项目发展动态调研报告2021年版
  3. 全球及中国家用空气净化器市场销售需求及营销策略模式分析报告2022-2027年
  4. js实现焦点进入文本框内关闭输入法:imeMode
  5. vue移动端过渡动画_Vue.js实现微信过渡动画左右切换效果
  6. 联合国粮农组织总干事屈冬玉 对话国际农民丰收节贸易会
  7. Hive的下载安装,以及配置mysql作为元数据库
  8. java-jpa-criteriaBuilder使用入门
  9. Java笔记:与系统交互、系统相关的类,Object类
  10. Google Map V3--geocode与fitBounds方法的同步操作