You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

61 lines
2.2 KiB

package com.henninghall.date_picker;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.widget.ImageView;
import com.henninghall.date_picker.wheelFunctions.SetShowCount;
import com.henninghall.date_picker.wheelFunctions.TextColor;
import cn.carbswang.android.numberpickerview.library.NumberPickerView;
class Style {
private static int DP_PER_SHOW_SHOW_COUNT = 35;
private final GradientDrawable gradientBottom;
private final GradientDrawable gradientTop;
private final PickerView pickerView;
public Style(PickerView pickerView) {
this.pickerView = pickerView;
ImageView overlayTop = (ImageView) pickerView.findViewById(R.id.overlay_top);
ImageView overlayBottom = (ImageView) pickerView.findViewById(R.id.overlay_bottom);
this.gradientTop = (GradientDrawable) overlayTop.getDrawable();
this.gradientBottom = (GradientDrawable) overlayBottom.getDrawable();
}
public void setFadeToColor(String color) {
int alpha = validColor(color) ? 255 : 0;
gradientTop.setAlpha(alpha);
gradientBottom.setAlpha(alpha);
if(validColor(color)) {
int startColor = Color.parseColor("#FF"+ color.substring(1));
int endColor = Color.parseColor("#00" + color.substring(1));
gradientTop.setColors(new int[] {startColor, endColor});
gradientBottom.setColors(new int[] {startColor, endColor});
}
}
public void setTextColor(String color) {
this.pickerView.applyOnAllWheels(new TextColor(color));
}
public void setHeight(int height) {
int showCount = height / DP_PER_SHOW_SHOW_COUNT;
int oddShowCount = showCount % 2 == 0 ? showCount + 1 : showCount;
pickerView.applyOnAllWheels(new SetShowCount(oddShowCount));
setShownCountOnEmptyWheels(oddShowCount);
}
private void setShownCountOnEmptyWheels(int shownCount) {
for (int id : Utils.emptyWheelIds) {
NumberPickerView view = (NumberPickerView) pickerView.findViewById(id);
if(view != null) view.setShownCount(shownCount);
}
}
private boolean validColor(String color){
return color != null && color.length() == 7;
}
}