Android开发之拖动条和评分组件用法分析

本文实例讲述了Android开发之拖动条和评分组件用法。分享给大家供大家参考,具体如下:

今天闲着没事做就拿出了Android书接着学习,android就是组件多有时候还会弄混淆了。这次介绍的是拖动条和评分组件,这2个组件也是超级简单的

下面就一个一个的来研究。

1. 拖动条,就类似android手机上调节音量那个,该组件和对话框不同的是用户可以操作。该组件的xml表现形式如下

<SeekBar
   android:id="@+id/seek"
   android:layout_marginLeft="20dip"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"/>

光这样太枯燥了,这里我做了个拖动切换图片的小例子。这里就要介绍下拖动条的长度了这个长度是可控制的像这里我有5张图片拖动条的size就是5.这个设置我直接写在了程序里。实现很简单就是在拖动条的基础上加个ImageView,然后对拖动条进行拖动的监听值改变了就切换ImageView就好了。下面是主要代码。

bar=(SeekBar)this.findViewById(R.id.seek);
imageview=(ImageView)this.findViewById(R.id.img);
bar.setMax(5);
bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
  public void onStopTrackingTouch(SeekBar seekBar) {
    // TODO Auto-generated method stub
  }
  public void onStartTrackingTouch(SeekBar seekBar) {
    // TODO Auto-generated method stub
  }
  public void onProgressChanged(SeekBar seekBar, int progress,
      boolean fromUser) {
    //切换图片
    imageview.setImageResource(imagedata[seekBar.getProgress()]);
  }
});

效果图如下所示,我觉得还是挺好的。

2. 下面就是评分插件了,android默认情况下是五角星,如果有必要可以弄成别的

这里我弄了一种自定义的类型,来看下吧

(1)在drawable下面弄个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/star_empty"
 />
  <item android:id="@+android:id/secondaryProgress"
    android:drawable="@drawable/star_empty"
 />
  <item android:id="@+android:id/progress"
    android:drawable="@drawable/star_full"
 />
</layer-list>

star_empty是灰色的五角星,star_full是黄色的五角星。上面的配置文件理解起来也很简单,下面就把这个样式嵌入到评分组件上,首先还是写个样式文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <style
  name="ratingbarstyle"
  parent="@android:style/Widget.RatingBar">
  <item name="android:progressDrawable">
    @drawable/starconfig
  </item>
  <item name="android:minHeight">53dip</item>
   <item name="android:maxHeight">53dip</item>
 </style>
</resources>

顺便说明下starconfig就是上面那个配置文件,下面就是标签了,该组件的常用属性是步长、星星的个数就像下面这样

<RatingBar
    android:id="@+id/rating"
    android:numStars="5"
    android:stepSize="1"
    style="@style/ratingbarstyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

后面也自然是事件处理了

rbar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
  public void onRatingChanged(RatingBar ratingBar, float rating,
      boolean fromUser) {
    int num=(int)rating;
    String result=null;
    switch (num) {
    case 1:
      result="非常不满意";
      break;
    case 2:
      result="不满意";
      break;
    case 3:
      result="还可以";
      break;
    case 4:
      result="满意";
      break;
    case 5:
      result="非常满意";
      break;
    default:
      break;
    }
    Toast.makeText(MyDailogActivity.this, result, 1).show();
  }
});

来看下效果吧

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android拖动条的实现代码

    本文实例为大家分享了Android拖动条的具体代码,供大家参考,具体内容如下 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="

  • Android高级界面组件之拖动条和评星条的功能实现

    一      拖动条 安卓手机音量设置都是给出一个拖动条,使得用户能够拖动滑块进行设置,这里我们介绍拖动条. 安卓拖动条控件是继承自ProgressBar控件,所以它能够支持ProgressBar的xml属性.但是他有自己的独特属性: android:max       设置最大的拖动两 android:progress     设置初始化进度 android:thumb        设置滑块图形 事件监听方面,拖动条需要注意:我们不在监听用户的点击操作,而是监听滑块的改变,下面用一个实例简单

  • Android中SeekBar拖动条控件使用方法详解

    SeekBar拖动条控件使用方法,具体内容如下 一.简介 1.  二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30" /> 2.添加setOn

  • Android开发之拖动条和评分组件用法分析

    本文实例讲述了Android开发之拖动条和评分组件用法.分享给大家供大家参考,具体如下: 今天闲着没事做就拿出了Android书接着学习,android就是组件多有时候还会弄混淆了.这次介绍的是拖动条和评分组件,这2个组件也是超级简单的 下面就一个一个的来研究. 1. 拖动条,就类似android手机上调节音量那个,该组件和对话框不同的是用户可以操作.该组件的xml表现形式如下 <SeekBar android:id="@+id/seek" android:layout_marg

  • Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码

    ProgressBar有2个子控件: SeekBar   拖动条控件 RatingBar   星级评分控件 1.拖动条控件 <SeekBar android:layout_width="300dp" android:layout_height="wrap_content" android:id="@+id/seekBar" android:min="0" android:max="100" andro

  • Android中SeekBar拖动条使用方法详解

    本文实例为大家分享了Android中SeekBar拖动条使用方法的具体代码,供大家参考,具体内容如下 SeekBar控件效果展示 拖动条SeekBar继承了ProgressBar,因此ProgressBar所支持的xml属性和方法完全适合SeekBar.只是进度条ProgressBar采用颜色填充来表明进度完成程度,拖动条SeekBar则通过滑块的外置来标识--拖动滑块允许进度值的改变.(例如:条件Android系统的音量) 如上图,通过拖动SeekBar滑块,实现图片透明度的修改.实现代码如下

  • Android开发之开关按钮控件ToggleButton简单用法示例

    本文实例讲述了Android开发之开关按钮控件ToggleButton简单用法.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: res/layout/activity_main.xml文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

  • Android开发之进度条ProgressBar的示例代码

    说明 ProgressBar一般用于显示一个过程,例如数据加载过程,文件下载进度,音乐播放进度等. 默认形式ProgressBar 默认方式下,ProgressBar显示为圆形进度,循环转圈,不显示具体的进度值,控制其显隐藏即可,如下 适用于界面加载 //xml中 <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> //代码中控制

  • android开发环境遇到adt无法启动的问题分析及解决方法

    开始研究android开发,搭建开发环境的时候就出了问题--果然是好事多磨~ 安装了jdk,配置环境变量,安装了完整版的adt.创建了helloworld程序,启动的时候就报错 "Please ensure that adb is correctly located at 'D:\adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe' and can be executed." 网上查了大量的资料,群里问了很多人,都说是配置环境有问题

  • Android开发之使用SQLite存储数据的方法分析

    本文实例讲述了Android开发之使用SQLite存储数据的方法.分享给大家供大家参考,具体如下: 前面已经说到了几种文件的操作如sharedreference,sdcard.实际上Android还提供了另外的存储方式那就是sqlite.只要学习过数据库掌握这个也是没问题的.下面就和我一起来弄一下这个吧. 1. 安装一个SQLiteDeveloper,这个用来打开android生成的数据库.软件随便搜索就能找到,后面导出数据库只需打开软件点击"数据库"----->"注册

  • Android开发手册SeekBar拖动条使用实例

    目录 实践过程 常用属性 基本使用 自定义样式 自定义样式 实践过程 常用属性 因为Seekbar继承自ProgressBar,所以ProgressBar支持的XML属性SeekBar都适用. [android:max="100"]:设置该进度条的最大值[android:progress="50"]:设置该进度条的已完成进度值[android:progressDrawable="@drawable/icon_xinsui"]:自定义drawabl

  • Android开发SavedState Jetpack状态保存利器

    目录 背景 SavedState的登场 理解SavedState 用法 SavedState组成概念 原理探究 最后 背景 在我们android开发中,如果需要actiivty/fragment等有状态的控件保存当前状态,由系统进行数据保存的恢复的时候 比如正常的暗黑模式切换/后台时低内存系统回收等等,都需要我们对当前的用户数据进行保存,不然下次重新恢复的时候,就会出现丢失数据的情况,给用户造成不太好的体验 一般都会重写onSaveInstanceState方法进行,在里面的Bundle对象进行

随机推荐