public HSVColorPickerDialog(Context context, Color initialColor, Action <Color> listener) : base(context) { this.selectedColor = initialColor; this.listener = listener; colorWheel = new HSVColorWheel(context); valueSlider = new HSVValueSlider(context); var padding = (int)(context.Resources.DisplayMetrics.Density * PADDING_DP); var borderSize = (int)(context.Resources.DisplayMetrics.Density * BORDER_DP); var layout = new RelativeLayout(context); var lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent); lp.BottomMargin = (int)(context.Resources.DisplayMetrics.Density * CONTROL_SPACING_DP); colorWheel.setListener((color) => valueSlider.SetColor(color, true)); colorWheel.setColor(initialColor); colorWheel.Id = (1); layout.AddView(colorWheel, lp); int selectedColorHeight = (int)(context.Resources.DisplayMetrics.Density * SELECTED_COLOR_HEIGHT_DP); var valueSliderBorder = new FrameLayout(context); valueSliderBorder.SetBackgroundColor(BORDER_COLOR); valueSliderBorder.SetPadding(borderSize, borderSize, borderSize, borderSize); valueSliderBorder.Id = (2); lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, selectedColorHeight + 2 * borderSize); lp.BottomMargin = (int)(context.Resources.DisplayMetrics.Density * CONTROL_SPACING_DP); lp.AddRule(LayoutRules.Below, 1); layout.AddView(valueSliderBorder, lp); valueSlider.SetColor(initialColor, false); valueSlider.SetListener((color) => { selectedColor = color; selectedColorView.SetBackgroundColor(color); }); valueSliderBorder.AddView(valueSlider); var selectedColorborder = new FrameLayout(context); selectedColorborder.SetBackgroundColor(BORDER_COLOR); lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, selectedColorHeight + 2 * borderSize); selectedColorborder.SetPadding(borderSize, borderSize, borderSize, borderSize); lp.AddRule(LayoutRules.Below, 2); layout.AddView(selectedColorborder, lp); selectedColorView = new View(context); selectedColorView.SetBackgroundColor(selectedColor); selectedColorborder.AddView(selectedColorView); SetButton((int)DialogButtonType.Negative, context.GetString(Android.Resource.String.Cancel), ClickListener); SetButton((int)DialogButtonType.Positive, context.GetString(Android.Resource.String.Ok), ClickListener); SetView(layout, padding, padding, padding, padding); }
public HSVColorPickerDialog(Context context, Color initialColor, Action<Color> listener) : base(context) { this.selectedColor = initialColor; this.listener = listener; colorWheel = new HSVColorWheel(context); valueSlider = new HSVValueSlider(context); var padding = (int)(context.Resources.DisplayMetrics.Density * PADDING_DP); var borderSize = (int)(context.Resources.DisplayMetrics.Density * BORDER_DP); var layout = new RelativeLayout(context); var lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent); lp.BottomMargin = (int)(context.Resources.DisplayMetrics.Density * CONTROL_SPACING_DP); colorWheel.setListener((color) => valueSlider.SetColor(color, true)); colorWheel.setColor(initialColor); colorWheel.Id = (1); layout.AddView(colorWheel, lp); int selectedColorHeight = (int)(context.Resources.DisplayMetrics.Density * SELECTED_COLOR_HEIGHT_DP); var valueSliderBorder = new FrameLayout(context); valueSliderBorder.SetBackgroundColor(BORDER_COLOR); valueSliderBorder.SetPadding(borderSize, borderSize, borderSize, borderSize); valueSliderBorder.Id = (2); lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, selectedColorHeight + 2 * borderSize); lp.BottomMargin = (int)(context.Resources.DisplayMetrics.Density * CONTROL_SPACING_DP); lp.AddRule(LayoutRules.Below, 1); layout.AddView(valueSliderBorder, lp); valueSlider.SetColor(initialColor, false); valueSlider.SetListener((color) => { selectedColor = color; selectedColorView.SetBackgroundColor(color); }); valueSliderBorder.AddView(valueSlider); var selectedColorborder = new FrameLayout(context); selectedColorborder.SetBackgroundColor(BORDER_COLOR); lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, selectedColorHeight + 2 * borderSize); selectedColorborder.SetPadding(borderSize, borderSize, borderSize, borderSize); lp.AddRule(LayoutRules.Below, 2); layout.AddView(selectedColorborder, lp); selectedColorView = new View(context); selectedColorView.SetBackgroundColor(selectedColor); selectedColorborder.AddView(selectedColorView); SetButton((int)DialogButtonType.Negative, context.GetString(Android.Resource.String.Cancel), ClickListener); SetButton((int)DialogButtonType.Positive, context.GetString(Android.Resource.String.Ok), ClickListener); SetView(layout, padding, padding, padding, padding); }