diff --git a/pickerview/src/main/java/com/bigkoo/pickerview/builder/OptionsPickerBuilder.java b/pickerview/src/main/java/com/bigkoo/pickerview/builder/OptionsPickerBuilder.java
index 84eaa165..d957666d 100644
--- a/pickerview/src/main/java/com/bigkoo/pickerview/builder/OptionsPickerBuilder.java
+++ b/pickerview/src/main/java/com/bigkoo/pickerview/builder/OptionsPickerBuilder.java
@@ -67,6 +67,11 @@ public OptionsPickerBuilder setCancelColor(int textColorCancel) {
return this;
}
+ public OptionsPickerBuilder setSelectAreaColor(int selectAreaColor){
+ mPickerOptions.selectAreaColor = selectAreaColor;
+ return this;
+ }
+
/**
* {@link #setOutSideColor} instead.
diff --git a/pickerview/src/main/java/com/bigkoo/pickerview/configure/PickerOptions.java b/pickerview/src/main/java/com/bigkoo/pickerview/configure/PickerOptions.java
index 44c85be9..c9c1cb20 100644
--- a/pickerview/src/main/java/com/bigkoo/pickerview/configure/PickerOptions.java
+++ b/pickerview/src/main/java/com/bigkoo/pickerview/configure/PickerOptions.java
@@ -101,6 +101,7 @@ public PickerOptions(int buildType) {
public int textColorCenter = 0xFF2a2a2a; //分割线之间的文字颜色
public int dividerColor = 0xFFd5d5d5; //分割线的颜色
public int outSideColor = -1; //显示时的外部背景色颜色,默认是灰色
+ public int selectAreaColor = 0xFFFFFFFF;//选中区域的背景色,默认是白色
public float lineSpacingMultiplier = 1.6f; // 条目间距倍数 默认1.6
public boolean isDialog;//是否是对话框模式
diff --git a/pickerview/src/main/java/com/bigkoo/pickerview/view/OptionsPickerView.java b/pickerview/src/main/java/com/bigkoo/pickerview/view/OptionsPickerView.java
index 56a54801..9a8a4f00 100644
--- a/pickerview/src/main/java/com/bigkoo/pickerview/view/OptionsPickerView.java
+++ b/pickerview/src/main/java/com/bigkoo/pickerview/view/OptionsPickerView.java
@@ -97,6 +97,7 @@ private void initView(Context context) {
wheelOptions.setTextColorOut(mPickerOptions.textColorOut);
wheelOptions.setTextColorCenter(mPickerOptions.textColorCenter);
wheelOptions.isCenterLabel(mPickerOptions.isCenterLabel);
+ wheelOptions.setSelectAreaColor(mPickerOptions.selectAreaColor);
}
/**
diff --git a/pickerview/src/main/java/com/bigkoo/pickerview/view/WheelOptions.java b/pickerview/src/main/java/com/bigkoo/pickerview/view/WheelOptions.java
index 75017a15..b63bb6a3 100644
--- a/pickerview/src/main/java/com/bigkoo/pickerview/view/WheelOptions.java
+++ b/pickerview/src/main/java/com/bigkoo/pickerview/view/WheelOptions.java
@@ -358,6 +358,16 @@ public void setDividerColor(int dividerColor) {
wv_option3.setDividerColor(dividerColor);
}
+ /**
+ * 设置选择区域背景颜色
+ * @param selectAreaColor
+ */
+ public void setSelectAreaColor(int selectAreaColor){
+ wv_option1.setSelectAreaColor(selectAreaColor);
+ wv_option2.setSelectAreaColor(selectAreaColor);
+ wv_option3.setSelectAreaColor(selectAreaColor);
+ }
+
/**
* 设置分割线的类型
*
diff --git a/wheelview/src/main/java/com/contrarywind/view/WheelView.java b/wheelview/src/main/java/com/contrarywind/view/WheelView.java
index ea7327c7..225f214b 100644
--- a/wheelview/src/main/java/com/contrarywind/view/WheelView.java
+++ b/wheelview/src/main/java/com/contrarywind/view/WheelView.java
@@ -61,6 +61,7 @@ public enum DividerType { // 分隔线类型
private Paint paintOuterText;
private Paint paintCenterText;
private Paint paintIndicator;
+ private Paint paintSelectArea;
private WheelAdapter adapter;
@@ -77,6 +78,7 @@ public enum DividerType { // 分隔线类型
private int textColorCenter;
private int dividerColor;
private int dividerWidth;
+ private int selectAreaColor;
// 条目间距倍数
private float lineSpacingMultiplier = 1.6F;
@@ -152,6 +154,7 @@ public WheelView(Context context, AttributeSet attrs) {
textColorOut = a.getColor(R.styleable.pickerview_wheelview_textColorOut, 0xFFa8a8a8);
textColorCenter = a.getColor(R.styleable.pickerview_wheelview_textColorCenter, 0xFF2a2a2a);
dividerColor = a.getColor(R.styleable.pickerview_wheelview_dividerColor, 0xFFd5d5d5);
+ selectAreaColor = a.getColor(R.styleable.pickerview_wheelview_selectAreaColor, 0xFFFFFFFF);
dividerWidth = a.getDimensionPixelSize(R.styleable.pickerview_wheelview_dividerWidth, 2);
textSize = a.getDimensionPixelOffset(R.styleable.pickerview_wheelview_textSize, textSize);
lineSpacingMultiplier = a.getFloat(R.styleable.pickerview_wheelview_lineSpacingMultiplier, lineSpacingMultiplier);
@@ -203,6 +206,10 @@ private void initPaints() {
paintIndicator.setColor(dividerColor);
paintIndicator.setAntiAlias(true);
+ paintSelectArea = new Paint();
+ paintSelectArea.setColor(selectAreaColor);
+ paintSelectArea.setAntiAlias(true);
+
setLayerType(LAYER_TYPE_SOFTWARE, null);
}
@@ -416,6 +423,7 @@ protected void onDraw(Canvas canvas) {
endX = measuredWidth - startX;
canvas.drawLine(startX, firstLineY, endX, firstLineY, paintIndicator);
canvas.drawLine(startX, secondLineY, endX, secondLineY, paintIndicator);
+ canvas.drawRect(startX,firstLineY,endX,secondLineY, paintSelectArea);
} else if (dividerType == DividerType.CIRCLE) {
//分割线为圆圈形状
paintIndicator.setStyle(Paint.Style.STROKE);
@@ -433,10 +441,16 @@ protected void onDraw(Canvas canvas) {
endX = measuredWidth - startX;
//半径始终以宽高中最大的来算
float radius = Math.max((endX - startX), itemHeight) / 1.8f;
- canvas.drawCircle(measuredWidth / 2f, measuredHeight / 2f, radius, paintIndicator);
+
+ Paint paint = new Paint();
+ paint.setColor(selectAreaColor);
+ paint.setStrokeWidth(radius);
+ canvas.drawCircle(measuredWidth / 2f, measuredHeight / 2f, radius, paint);
+ canvas.drawCircle(measuredWidth / 2f, measuredHeight / 2f, radius, paintIndicator);
} else {
canvas.drawLine(0.0F, firstLineY, measuredWidth, firstLineY, paintIndicator);
canvas.drawLine(0.0F, secondLineY, measuredWidth, secondLineY, paintIndicator);
+ canvas.drawRect(0.0F,firstLineY,measuredWidth,secondLineY, paintSelectArea);
}
//只显示选中项Label文字的模式,并且Label文字不为空,则进行绘制
@@ -802,6 +816,11 @@ public void setDividerColor(int dividerColor) {
paintIndicator.setColor(dividerColor);
}
+ public void setSelectAreaColor(int selectAreaColor){
+ this.selectAreaColor = selectAreaColor;
+ paintSelectArea.setColor(selectAreaColor);
+ }
+
public void setDividerType(DividerType dividerType) {
this.dividerType = dividerType;
}
diff --git a/wheelview/src/main/res/values/attrs.xml b/wheelview/src/main/res/values/attrs.xml
index e7cae4d3..1de99223 100644
--- a/wheelview/src/main/res/values/attrs.xml
+++ b/wheelview/src/main/res/values/attrs.xml
@@ -10,6 +10,7 @@
+