1.概述
Android中自带的SeekBar可以用于一定范围内的筛选[0,progress],而大众点评中有个范围选择控件,可以实现[a,b]范围内的选择,今天自己模仿其做了一个。
2.效果对比图
3.功能
用户可以滑动两个按钮进行范围的选择,还可以点击按钮两侧没有被选择的范围,以点击的位置作为其最新位置。
4.实现代码
package com.example.qq.test.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import com.example.qq.R;
/**
* Description: 实现范围滑杠选择器(RangeSeekBar)。 SeekBar上有两个滑块,一个选择最小值,一个选择最大值,从而选择了一个范围(range)。
*
* @author danDingCongRong
* @Version 1.0.0
* @Created at 2014-7-24 14:37:56
* @Modified by [作者] on [修改日期]
*/
public class RangeSeekBar extends View {
private float lineWidth = 5.0f;
private float textSize = 25.0f;
private int inRangeColor = 0xffff0000;
private int outRangeColor = 0xff777777;
private int textColor = 0xff0000ff;
private int textMarginBottom = 10;
private int lowerCenterX;
private int upperCenterX;
private int bmpWidth;
private int bmpHeight;
private Bitmap lowerBmp;
private Bitmap upperBmp;
private Paint inRangePaint;
private Paint outRangePaint;
private Paint bmpPaint;
pr