拖动条(SeekBar)和星级评分条(RatingBar)的使用

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

拖动条通过滑块的位置来标识数值,而且拖动条允许用户拖动滑条来改变值,因此,它常用于对系统的某种数值进行调节,如音量等。android:thumb:指定一个Drawable对象,该对象将作为自定义滑块。星级评分条与拖动条十分相似,它们甚至有相同的父类:AbsSeekBar。区别在于RatingBar通过星星来表示进度。下面列出RatingBar所支持的常见XML属性:

下面通过一个实例来演示它们的使用,实现动态改变图片的透明度。

Activity:

package com.lovo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 获得ImageView实例
		final ImageView image1 = (ImageView) findViewById(R.id.image1);
		final ImageView image2 = (ImageView) findViewById(R.id.image2);
		// 获得拖动条SeekBar实例
		SeekBar seekBar = (SeekBar) findViewById(R.id.seekbar);
		// 获得星级评分条RatingBar实例
		RatingBar rateingBar = (RatingBar) findViewById(R.id.rating);
		// 为SeekBar注册监听事件
		seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				// 动态改变图片1的透明度
				image1.setAlpha(progress);
			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
			}

			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
			}
		});
		// 为RatingBar注册监听事件
		rateingBar
				.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

					@Override
					public void onRatingChanged(RatingBar ratingBar,
							float rating, boolean fromUser) {
						// 动态改变图片2的透明度,其中255是星级评分条的最大值,5个星就代表最大值255
						image2.setAlpha((int) (rating * 255 / 5));

					}
				});
	}
}


布局XML:

<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="wrap_content"
    android:layout_height="100dp"
    android:id="@+id/image1"
    android:src="@drawable/image1"/>
<SeekBar android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="255"
    android:progress="255"
    android:id="@+id/seekbar"/>
<RatingBar  
    android:id="@+id/rating"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numStars="5"
    android:max="255"
    android:progress="255"
    android:stepSize="0.5"/>
<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:id="@+id/image2"
    android:src="@drawable/image2"/>
</LinearLayout>


附上图片效果:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u010142437

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值