Example #1
0
  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawColor(backgroundColor);
    if (colorWheel != null) canvas.drawBitmap(colorWheel, 0, 0, null);
    if (currentColorCircle != null) {
      float maxRadius =
          canvas.getWidth() / 2f - STROKE_RATIO * (1f + ColorWheelRenderer.GAP_PERCENTAGE);
      float size = maxRadius / density / 2;
      colorWheelFill.setColor(
          Color.HSVToColor(currentColorCircle.getHsvWithLightness(this.lightness)));
      colorWheelFill.setAlpha((int) (alpha * 0xff));
      canvas.drawCircle(
          currentColorCircle.getX(),
          currentColorCircle.getY(),
          size * STROKE_RATIO,
          selectorStroke1);
      canvas.drawCircle(
          currentColorCircle.getX(),
          currentColorCircle.getY(),
          size * (1 + (STROKE_RATIO - 1) / 2),
          selectorStroke2);

      canvas.drawCircle(
          currentColorCircle.getX(), currentColorCircle.getY(), size, alphaPatternPaint);
      canvas.drawCircle(currentColorCircle.getX(), currentColorCircle.getY(), size, colorWheelFill);
    }
  }
Example #2
0
  private ColorCircle findNearestByPosition(float x, float y) {
    ColorCircle near = null;
    double minDist = Double.MAX_VALUE;

    for (ColorCircle colorCircle : renderer.getColorCircleList()) {
      double dist = colorCircle.sqDist(x, y);
      if (minDist > dist) {
        minDist = dist;
        near = colorCircle;
      }
    }

    return near;
  }
Example #3
0
 public void setLightness(float lightness) {
   this.lightness = lightness;
   this.initialColor =
       Color.HSVToColor(
           Utils.alphaValueAsInt(this.alpha), currentColorCircle.getHsvWithLightness(lightness));
   if (this.colorEdit != null)
     this.colorEdit.setText("#" + Integer.toHexString(this.initialColor).toUpperCase());
   if (this.alphaSlider != null && this.initialColor != null)
     this.alphaSlider.setColor(this.initialColor);
   updateColorWheel();
   invalidate();
 }
Example #4
0
  private ColorCircle findNearestByColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    ColorCircle near = null;
    double minDiff = Double.MAX_VALUE;
    double x = hsv[1] * Math.cos(hsv[0] * Math.PI / 180);
    double y = hsv[1] * Math.sin(hsv[0] * Math.PI / 180);

    for (ColorCircle colorCircle : renderer.getColorCircleList()) {
      float[] hsv1 = colorCircle.getHsv();
      double x1 = hsv1[1] * Math.cos(hsv1[0] * Math.PI / 180);
      double y1 = hsv1[1] * Math.sin(hsv1[0] * Math.PI / 180);
      double dx = x - x1;
      double dy = y - y1;
      double dist = dx * dx + dy * dy;
      if (dist < minDiff) {
        minDiff = dist;
        near = colorCircle;
      }
    }

    return near;
  }
Example #5
0
 public int getSelectedColor() {
   int color = 0;
   if (currentColorCircle != null)
     color = Color.HSVToColor(currentColorCircle.getHsvWithLightness(this.lightness));
   return Utils.adjustAlpha(this.alpha, color);
 }