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 @@ +