Android进度条(星级评分)使用详解(二)

一、SeekBar拖动条使用

SeekBar继承于ProgressBar,ProgressBar所支持的XML属性和方法完全适用于SeekBar。拖动条和进度条的区别是:进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块位置来标识数值并且运行用户拖动滑块来改变值。因此,拖动条通常用于对系统的某种数值进行调节,比如调节音量、图片的透明度等。

1.拖动条效果

2.代码实现

功能:通过拖动滑块该动态改变图片的透明度

public class MainActivity extends ActionBarActivity {
 private ImageView image = null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  image = (ImageView)findViewById(R.id.image);
  SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
  seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
   //当拖动条发生改变时触发该方法
   public void onProgressChanged(SeekBar seekBar, int progress,
     boolean fromUser) {	 //Notification that the progress level has changed
    image.setImageAlpha(progress);//动态改变图片的透明度
   }
   public void onStopTrackingTouch(SeekBar seekBar) {	//Notification that the user has finished a touch gesture
   }
   public void onStartTrackingTouch(SeekBar seekBar) {	//Notification that the user has started a touch gesture
   }
  });
 }
}

其中,界面布局文件main.xml为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ImageView
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="250dp"
        android:src="@drawable/hehe"/>
    <!--定义一个拖动条,并改变它的滑块外观  -->
 <SeekBar
     android:id="@+id/seekBar"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:max="255"                    //设置拖动条的最大值
     android:progress="255"             //设置拖动条当前默认值
     android:thumb="@drawable/android" />
</LinearLayout>

注:SeekBar允许用户改变拖动条的滑块外观,通过android:thumb属性指定一个Drawable对象实现。

二、RatingBar星际评分条使用

星际评分条与拖动条都继承于AbsSeekBar,它们都允许用户通过拖动来改变进度。RatingBar与SeekBar最大的区别是:RatingBar通过星星来表示。RatingBar支持的常见XML属性如下:

android:isIndicator:设置该星级评分条是否允许用户改变(true为不允许修改)

android:numStarts:设置该星级评分总共有多少个星级

android:rating:设置该星级评分条默认的星级

android:stepSize:设置每次需要改变多少个星级

1.星级评分效果

2.代码实现

功能:通过星级评分改变图片的透明度

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  image = (ImageView) findViewById(R.id.image);
  RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar);
  ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
   public void onRatingChanged(RatingBar ratingBar, float rating,
     boolean fromUser) {
    image.setImageAlpha((int)(rating*255)/5);// 动态改变图片的透明度
   }
  });

其中,RatingBar定义(main.xml)为:

<RatingBar
      android:id="@+id/ratingBar"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
     android:max="255"
     android:numStars="5"
     android:stepSize="0.5"
     android:progress="255"/>
时间: 2024-09-30 14:43:30

Android进度条(星级评分)使用详解(二)的相关文章

Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

[Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之——LinearLayout的layout_weight属性   4.Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline    Layout Parameters(布局参数): 在XML文件中,我们经常看到类似与lay

【Android UI设计】Dialog对话框详解(二)

上一篇我们介绍了Dialog的基本使用方法,[Android UI设计]Dialog对话框详解(一)今天继续介绍,废话不多说,今天主要实现ProgressDialog和透明Dialog两种效果,最后介绍一下github上的一个Dialog动画开源库,里面包含多种动画特效,效果图如下: 一.ProgressDialog基本使用 1.ProgressDialog关键代码 mProgressDialog = new ProgressDialog(MainActivity.this); // 圆形pro

Android研究之游戏开发多线程详解

 游戏开发与软件开发多线程的重要性       如果程序主线程被阻塞超过5秒,系统会提示"应用程序无响应" 这就是ANR . ANR的全称是Application Not Responding,使用多线程可以避免ANR.但是这里要注意一下不要为了避免ANR而过多的使用多线程,除非万不得已的情况. 比如访问网络服务端返回的过慢.数据过多导致滑动屏幕不流畅.或者I/O读取过大的资源等等.这里可以开启一个新线程来处理这些耗时的操作. 如果过多使用多线程会出现数据同步的问题须要程序员去处理

Android ViewGroup触摸屏事件派发机制详解与源码分析

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 该篇承接上一篇<Android View触摸屏事件派发机制详解与源码分析>,阅读本篇之前建议先阅读. 1 背景 还记得前一篇<Android View触摸屏事件派发机制详解与源码分析>中关于透过源码继续进阶实例验证模块中存在的点击Button却触发了LinearLayout的事

Android实习札记(6)---ViewPager使用详解

Android实习札记(6)---ViewPager使用详解                                    --转载请注明出处:coder-pig 札记(5)中介绍了Fragment构建简单的底部导航栏,在结尾的时候说要在下一节中,结合Viewpager 实现进入软件时的引导界面,说到ViewPager,很多朋友都用过,不过只知道粘贴复制,连一些基本的 东西都不知道,那是不行的,在本节中就先讲下ViewPager的一些基本概念吧! 1.首先ViewPager在哪个包下?

Android 中的 Service 全面总结详解【下】

上一篇文章Android 中的 Service 全面总结详解[下] 介绍了Service的一些知识以及本地Service的使用,如果对Service还不太了解的建议先看下上篇文章:本文主要接着上一篇讲下远程服务的使用: 在说到远程服务的时候,我们需要先了解一些预备的知识: 首先来了解一下AIDL机制: AIDL的作用 由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象.在Android平台,一个进程通常不能访问另一个进程的内存空间,

unity导出android遇到的build target 错误详解

1. 导出运行后显示build target ="9",version is wrong ,can't  loaded xxx.untiy3d files 之类的,一般情况看导出的jar包内的project.properties中target 是否正确,改正后而且要clean相关项目. 2.看AndroidManifest.xml下    android:minSdkVersion和android:targetSdkVersion 是否正确,改正后refresh 3.看报错信息是否提示

android 进度条

在之前实现自定义进度条的时候,基本上都是使用ImageView来实现的,见  Android 用Animation-list实现逐帧动画,最近一段时间看到APP的进度条很多都是ProgressBar然后圆圈里面是一张图片,所以就查看了一下ProgressBar的使用. 1.动画实现 定义res/anim/loading.xml,例如: <?xml version="1.0" encoding="UTF-8"?> <animation-list

Android系列之Android 命令行手动编译打包详解

http://www.qdmm.com/BookReader/1222701,54263720.aspxhttp://www.qdmm.com/BookReader/1222701,54263869.aspxhttp://www.qdmm.com/BookReader/1222701,54263871.aspxhttp://www.qdmm.com/BookReader/1222701,54263876.aspxhttp://www.qdmm.com/BookReader/1222701,542