今天在看一个音乐播放器的源代码时候用到了SeekBar,就翻出来mars老师的视频复习了一下,然后综合使用了一下.

首先先看下运行效果:

 

下来我们看看布局文件的设计:
main.xml:

 <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
   <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="SeekBar"/>
   <SeekBar
   android:id="@+id/sb_seekbar"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"/>
   <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="RatingBar"/>
   <RatingBar
   android:id="@+id/rb_ratingbar"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:numStars="5"
   android:stepSize="0.5"/>
   </LinearLayout>

在布局文件中我只定义了SeekBar ,RatingBar这两个控件。在定义RatingBar中有两个属性需要说明一下,android:numStars是用来设置你要显示的星星的个数,这个根据需求自己来设置,我在这里设置为5个,android:stepSize是来设置RatingBar每次前进多少,这里我设置为一半:0.5个星,这个也是根据需求来设置。

下面来看java代码的编写,这连个控件的具体用法我在编写代码时做了注释,在这里我就不做多余的解释了,直接将代码附在下面,大家参考下:

SeekBarActivity:

 package com.jason.Seekbar;
  import android.app.Activity;
  import android.os.Bundle;
  import android.util.Log;
  import android.widget.RatingBar;
   import android.widget.RatingBar.OnRatingBarChangeListener;
   import android.widget.SeekBar;
   import android.widget.SeekBar.OnSeekBarChangeListener;
   /**
   *引用 OnSeekBarChangeListener和OnRatingBarChangeListener
   */
   public class SeekBarActivity extends Activity implements OnSeekBarChangeListener,OnRatingBarChangeListener {
   private SeekBar bar;
   private RatingBar ratingBar;    @Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   bar = (SeekBar)findViewById(R.id.sb_seekbar);
   ratingBar=(RatingBar)findViewById(R.id.rb_ratingbar);
   bar.setMax(100);//设置seekbar的最大值
   bar.setOnSeekBarChangeListener(this);//设置监听器,监听进度条的改变状态  
   ratingBar.setOnRatingBarChangeListener(this);//设置监听器,监听ratingbar的改变状态
   }
   /**
   * 当进度条的进度发生变化时调用该方法
   * seekBar, 当前的seekbar
   * progress, seekbar的当前进度
   * fromUser, 是否是用户改变进度的
   */
   @Override
   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
   Log.v("TAG", "onProgressChanged-->seekBar="+seekBar.getId()+"progress="+progress+"fromUser="+fromUser);
   }
   /**
   * 当用户开始滑动进度条时调用该方法
   */
   @Override
   public void onStartTrackingTouch(SeekBar seekBar) {
   Log.v("TAG", "onStartTrackingTouch start--->"+"+seekBar="+seekBar.getProgress());
   }
   /**
   * 当用户结束滑动是调用该方法
   */
   @Override
   public void onStopTrackingTouch(SeekBar seekBar) {
   Log.v("TAG", "onStopTrackingTouch end--->"+"+seekBar="+seekBar.getProgress());
   }
   /**
   * 当ratingBar的进度发生变化时调用该方法
   * ratingBar, 当前的ratingBar
   * rating 代表评分
   * fromUser 是否是用户操作的
   */
   @Override
   public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
   Log.v("TAG", "onRatingChanged-->ratingBar="+ratingBar.getId() +"rating="+rating+"fromUser="+fromUser);
   }
   }

上面在为两个控件设置监听时,重写了很多方法,这些方法都很容易理解,根据不同的需求在重写这些方法。

SeekBar和RatingBar的更多相关文章

  1. android学习---SeekBar和RatingBar

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

  2. 二、Android应用的界面编程(六)ProgressBar及其子类[SeekBar、RatingBar]er

    通常用于向用户显示某个耗时操作完成的百分比.Android支持几种风格的进度条,通过style属性可以为ProgressBar指定风格.该属性支持如下几个属性值. # @android:style/W ...

  3. Android学习笔记(九) SeekBar和RatingBar

    一.SeekBar的主要属性 -max -progress -secondaryProgress 二.onSeekBarChangeListener -onProgressChanged(SeekBa ...

  4. SeekBar和RatingBar的基本使用方法

    SeekBar: main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...

  5. Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar

    原文:Android零基础入门第53节:拖动条SeekBar和星级评分条RatingBar 前面两期都在学习ProgressBar的使用,关于自定义ProgressBar的内容后期会继续学习的,本期先 ...

  6. android学习笔记九——RatingBar

    RatingBar==>星级评分条 RatingBar和SeekBar十分相似,它们甚至有相同的父类:AbsSeekBar.两者都允许用户通过拖动来改变进度: 两者最大的区别在于RatingBa ...

  7. ProgressBar、RatingBar和Spinner控件

    1.ProgressBar.SeekBar与RatingBar控件 ProgressBar控件,也就是我们通常的进度条控件,可以显示加载的进度等.SeekBar控件,滑块控件,可以根据用户的需要动态为 ...

  8. Android开发-之认识palette

    Android开发中,Google工程师已经给我们封装好了很多的按钮,使得我们在开发中非常的方便和便捷. 那么今天就来认识一下常用的按钮,那么在之前的课程中我已经详细讲过了Button按钮,那么这里就 ...

  9. Android开发自学笔记(Android Studio)—4.5 ProgressBar及其子类

    一.前言 ProgressBar本身代表了进度条组件,它还派生出了两个常用的组件:SeekBar和RatingBar,他们的使用方法类似,只是显示界面有一定的区别.我们看一下API文档中的说明: 从图 ...

随机推荐

  1. GetClientRect()和GetWindowRect()

    GetClientRect()   是得到客户区坐标系下客户区的RECT GetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 ...

  2. Windows下Mysql解压缩版配置安装与卸载

    安装: ①解压Mysql到合适的位置! ②以管理员身份运行命令提示符(cmd),cd C:\Documents and Settings\Administrator\桌面\mysql-5.6.24-w ...

  3. maven项目依赖被改为文件夹时如何改回lib

    如图

  4. [FML]学习笔记一Cross-validation交叉验证

    在实际的工程中,有时labeled data的数量不足以留出validation sample(验证样本)否则会导致training sample(训练样本)的数量太少.为了解决这个问题,我们引入一种 ...

  5. 利用WSGI来部署你的网站

    利用WSGI来部署你的网站 当需要部署你的django项目的时候,可以使用apache+python来部署访问你的网站. 由于网上的有关的都是老版本的.所以这里使用apache2.4和python3. ...

  6. 100个iOS开发/设计程序员面试题汇总,你将如何作答?

    100个iOS开发/设计程序员面试题汇总,你将如何作答? 雪姬 2015-01-25 19:10:49 工作职场 评论(0)   无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目, ...

  7. CloudStack添加新的API注意事项

    1.***Cmd上面的@APICommand里的responseObject关联对于的Response: 2.在tomcatconf/command.properties.in添加新API的权限: 3 ...

  8. PHP-FPM小故障解决记录

    前天昨天发生的事. 阿里云升级MYSQL,申请只读库之后,IP发生了改变,PHP中关于数据库的连接都需要修改. 我们是以实例名作为统一连接字符的. 但在其中一台后端机器上,死活不生效. 就是如何是用I ...

  9. LeetCode_Flatten Binary Tree to Linked List

    Given a binary tree, flatten it to a linked list in-place. For example, Given 1 / \ 2 5 / \ \ 3 4 6 ...

  10. ASP.NET MVC3快速入门——第四节、添加一个模型

    在本节中我们将追加一些类来管理数据库中的电影.这些类将成为我们的MVC应用程序中的“模型”部分.我们将使用一个.NET Framework的被称之为“Entiry Framework”的数据访问技术来 ...