android学习---SeekBar和RatingBar

SeekBar 拖动条:拖动条和滚动条类似,当是拖动条可以拖动滑块改变进度

RatingBar 星级评分条:星级评分条与拖动条相似

SeekBar特有的xml属性

android:thumb    指定一个Arawable对象,作为之定义滑块

RatingBar特有的xml属性

android:isIndicator   是否允许用户改变(true为不允许修改)

android:numStars   共有多少个星级

android:rating   默认的星级

android:stepSize   每次至少改变多少个星级

为了知道改变的进度而做相应的操作,我们需要添加监听

SeekBar 的监听 OnSeekBarChangeListener

RatingBar的监听 OnRatingBarChangeListener

下面我们通过实例来熟悉它们

(1)编写布局文件   activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imgView1"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:src="@drawable/ic_launcher"/>
    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="180dp"
        android:layout_height="wrap_content"
        android:thumb="@drawable/ic_launcher"
        android:max="255"
        android:progress="255"/>
      <ImageView
        android:id="@+id/imgView2"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:src="@drawable/img01"/>
      <RatingBar
          android:id="@+id/reatingBar"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:max="255"
          android:progress="255"
          android:rating="5"
          android:stepSize="0.5"
          android:numStars="5"/>

</LinearLayout>

(2)编写 MainActivity.java

package com.example.bar;

import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class MainActivity extends Activity {

	private ImageView imgViewSB = null; //定义ImageView
	private ImageView imgViewRB = null;
	private SeekBar seekBar = null;  //定义SeekBar
	private RatingBar ratingBar = null; //定义RatingBar

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//布局组件
		this.imgViewSB = (ImageView) findViewById(R.id.imgView1);
		this.imgViewRB = (ImageView) findViewById(R.id.imgView2);
		this.seekBar = (SeekBar) findViewById(R.id.seekBar);
		this.ratingBar = (RatingBar) findViewById(R.id.reatingBar);

		//seekBar设置监听,改变图片透明度
		this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				Log.i("onStopTrackingTouch", "停止拖动触发的方法");

			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				Log.i("onStartTrackingTouch", "开始拖动触发的方法");

			}

			/**
			 * seekBar: SeekBar对象
			 * progress:拖动条的进度
			 * fromUser:是否用户手动改变
			 */
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				imgViewSB.setAlpha(progress);  //设置图片的透明度
				Log.i("onProgressChanged", "拖动滑块位置发生改变时触发的方法");

			}
		});

		//ratingBar设置监听,改变图片透明度
		this.ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

			/**
			 * ratingBar:RatingBar对象
			 * rating :星级的大小
			 * fromUser:是否用户手动改变
			 */
			@Override
			public void onRatingChanged(RatingBar ratingBar, float rating,
					boolean fromUser) {
				imgViewRB.setAlpha((int)(rating*255/5));

			}
		});

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

允许之后,效果如下:

android学习---SeekBar和RatingBar

时间: 2024-11-05 14:49:23

android学习---SeekBar和RatingBar的相关文章

android学习SeekBar的使用

SeekBar介绍听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,而且拖动条允许用户拖动滑块来改变进度条的大小 SeekBar的主要属性和方法(1)setMax --- 设置SeekBar的最大数值(2)setProgress --- 设置SeekBar的当前数值(3)setSecondProgress---设置SeekBar的第二数值 即当前拖动条的推荐位置SeekBar的事件由于拖动条可以诶用户控制.所以需要对其事件

【Android 初学】8、进度条(ProgressBar、SeekBar、RatingBar)

Start Android 现在发现每个控件的使用方法都大同小异,所以决定加快学习步骤,这一部分的笔记就写的简略了. 1.Android当中的进度条 2.各种进度条之间的关系 3.ProgressBar进度条的风格 4.ProgressBar的使用方法 ProgressBar的Style 主要有两大类 进度条的主要属性 进度条最大值:max 当前进度:progress 次要进度的值:SecondaryProgress 1.SeekBar的主要属性 1)进度条最大值:max 2)当前进度:prog

Android学习笔记18:自定义Seekbar拖动条式样

Android学习笔记18:自定义Seekbar拖动条式样

Android学习笔记(十八):ListView和RatingBar

在学习笔记(十七)中,我们对ListView做了进一步的探讨,然而给出的例子list中的元素可以有多个widget,并可灵活设置他们的值,但是这些widget之间缺乏互动,而且getView()的调用,需要重刷给list的entry,我们希望能够在entry中触发变化. 本次,我们继续根据<Beginging Android 2>的学习,结合RatingBar,将程序稍微复杂一点.RatingBar看用于媒体库的平级,我们用RatingBar取代了之前例子的图标,当RatingBar设置为三星

Android的SeekBar和RateBar的使用-android学习之旅(三十二)

SeekBar简介 SeekBar允许用户拖动,进行调节经常用于音量调节等方面. android:thumb设置drawable对象来表示拖动的物体. setOnSeekBarChangeListener()设置SeekBar的改变. 代码示例 package peng.liu.test; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.Men

Android学习之------SeekBar(控制wav音频的声音)

使用SeekBar调节声音 SeekBar控件其实就是一个高级点的进度条,就像我们在听歌,看电影用的播放器上的进度条一样,是可以拖动的,可以改变进度的一个进度条控件! SeekBar常用属性: android:max[integer]//设置拖动条的最大值 android:progress[integer]//设置当前的进度值 android:secondaryProgress[integer]//设置第二进度,通常用做显示视频等的缓冲效果 android:thumb[drawable]//设置

《Android学习指南》文件夹

转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会非常累. 1.Android学习指南基础篇 对于有Java基础的朋友,能够通过本分类60讲左右的课程,打下比較坚实的基础. 2.Android学习指南项目实训篇 对于学过"1.Android2.2学习指南基础篇"的朋友,能够通过本分类项目的联系,加深对基础

【Android学习】《Android开发视频教程》第一季笔记

视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时5    Activity基础概念 1.Android开发技术结构图 2.Android四大组件 Activity(页面).Service(后台运行的服务).Content Provider(数据提供者,向外暴露数据的方法,数据共享).Broadcast Receiver(监听手机发生的一切事情) 课时6    文本框与按钮的使用方法(Activity初步一) 1

Android学习---- 十月

//因为域名去备案了 //PHP的学习想停一下,刚好说什么Java要开始实验课了 //暑假看的Java都生疏了,就想顺便学一下Android,熟悉一下Java的语法也好,顺便学学新东西 //昨天域名备案成功,服务器什么的也都好了 //所以PHP要开始更加深入的学习了,打算Android以后每天学一点,不像这半个月花那么多时间在它上面了 //半个月来通过Mars老师的视频,学到了不少基础知识 //现在只学了重制版的一.二季,总结一下好了 [Summary] 1.Activity 2.View 3.