android.graphics.Color.HSVToColor()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(8.0k)|赞(0)|评价(0)|浏览(495)

本文整理了Java中android.graphics.Color.HSVToColor()方法的一些代码示例,展示了Color.HSVToColor()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Color.HSVToColor()方法的具体详情如下:
包路径:android.graphics.Color
类名称:Color
方法名:HSVToColor

Color.HSVToColor介绍

暂无

代码示例

代码示例来源:origin: gzu-liyujiang/AndroidPicker

private int getColorForGradient(float[] hsv) {
  // fixed: 17-1-7  Equality tests should not be made with floating point values.
  if ((int) hsv[2] != 1) {
    float oldV = hsv[2];
    hsv[2] = 1;
    int color = Color.HSVToColor(hsv);
    hsv[2] = oldV;
    return color;
  } else {
    return Color.HSVToColor(hsv);
  }
}

代码示例来源:origin: wangdan/AisenWeiBo

public int getColor() {
  return Color.HSVToColor(colorHSV);
}

代码示例来源:origin: googlemaps/android-maps-utils

protected int getColor(int clusterSize) {
  final float hueRange = 220;
  final float sizeRange = 300;
  final float size = Math.min(clusterSize, sizeRange);
  final float hue = (sizeRange - size) * (sizeRange - size) / (sizeRange * sizeRange) * hueRange;
  return Color.HSVToColor(new float[]{
      hue, 1f, .6f
  });
}

代码示例来源:origin: timehop/sticky-headers-recyclerview

private int getRandomColor() {
 SecureRandom rgen = new SecureRandom();
 return Color.HSVToColor(150, new float[]{
   rgen.nextInt(359), 1, 1
 });
}

代码示例来源:origin: mikepenz/FastAdapter

private int getRandomColor() {
  SecureRandom rgen = new SecureRandom();
  return Color.HSVToColor(150, new float[]{
      rgen.nextInt(359), 1, 1
  });
}

代码示例来源:origin: naman14/Timber

public static int getStatusBarColor(int primaryColor) {
  float[] arrayOfFloat = new float[3];
  Color.colorToHSV(primaryColor, arrayOfFloat);
  arrayOfFloat[2] *= 0.9F;
  return Color.HSVToColor(arrayOfFloat);
}

代码示例来源:origin: prolificinteractive/material-calendarview

@OnClick(R.id.button_set_colors)
void onColorsClicked() {
 int color = Color.HSVToColor(new float[] {
   random.nextFloat() * 360,
   1f,
   0.75f
 });
 widget.setSelectionColor(color);
}

代码示例来源:origin: wdullaer/MaterialDateTimePicker

public static int darkenColor(int color) {
  float[] hsv = new float[3];
  Color.colorToHSV(color, hsv);
  hsv[2] = hsv[2] * 0.8f; // value component
  return Color.HSVToColor(hsv);
}

代码示例来源:origin: iSoron/uhabits

public static int setMinValue(int color, float newValue)
{
  float hsv[] = new float[3];
  Color.colorToHSV(color, hsv);
  hsv[2] = Math.max(hsv[2], newValue);
  return Color.HSVToColor(hsv);
}

代码示例来源:origin: iSoron/uhabits

/**
 * Given a particular color, adjusts its value by a multiplier.
 */
private static int getPressedColor(int color) {
  float[] hsv = new float[3];
  Color.colorToHSV(color, hsv);
  hsv[2] = hsv[2] * PRESSED_STATE_MULTIPLIER;
  return Color.HSVToColor(hsv);
}

代码示例来源:origin: Rajawali/Rajawali

@Override
protected void applyTransformation() {
  mMultipliedColor[0] = mDiffColor[0] * (float) mInterpolatedTime;
  mMultipliedColor[1] = mDiffColor[1] * (float) mInterpolatedTime;
  mMultipliedColor[2] = mDiffColor[2] * (float) mInterpolatedTime;
  mMultipliedAlpha = (int) (mDiffAlpha * (float) mInterpolatedTime);
  mAddedColor[0] = mFromColor[0] + mMultipliedColor[0];
  mAddedColor[1] = mFromColor[1] + mMultipliedColor[1];
  mAddedColor[2] = mFromColor[2] + mMultipliedColor[2];
  ((Object3D) mTransformable3D).setColor(Color.HSVToColor(mMultipliedAlpha + mFromAlpha, mAddedColor));
}

代码示例来源:origin: gzu-liyujiang/AndroidPicker

public static int toDarkenColor(@ColorInt int color, @FloatRange(from = 0f, to = 1f) float value) {
  float[] hsv = new float[3];
  Color.colorToHSV(color, hsv);
  hsv[2] *= value;//HSV指Hue、Saturation、Value,即色调、饱和度和亮度,此处表示修改亮度
  return Color.HSVToColor(hsv);
}

代码示例来源:origin: gzu-liyujiang/AndroidPicker

protected void onUpdateColorSelection(int x, int y) {
  x = (int) Math.max(mGradientRect.left, Math.min(x, mGradientRect.right));
  y = (int) Math.max(mGradientRect.top, Math.min(y, mGradientRect.bottom));
  if (mIsBrightnessGradient) {
    float b = pointToValueBrightness(x);
    mHSV[2] = b;
    mSelectedColor = Color.HSVToColor(mHSV);
  } else {
    float hue = pointToHue(x);
    float sat = pointToSaturation(y);
    mHSV[0] = hue;
    mHSV[1] = sat;
    mHSV[2] = 1f;
    mSelectedColor = Color.HSVToColor(mHSV);
  }
  dispatchColorChanged(mSelectedColor);
}

代码示例来源:origin: wangdan/AisenWeiBo

private void drawPointerArrow(Canvas canvas) {
  int centerX = getWidth() / 2;
  int centerY = getHeight() / 2;
  double tipAngle = (colorHSV[2] - 0.5f) * Math.PI;
  double leftAngle = tipAngle + Math.PI / 96;
  double rightAngle = tipAngle - Math.PI / 96;
  double tipAngleX = Math.cos(tipAngle) * outerWheelRadius;
  double tipAngleY = Math.sin(tipAngle) * outerWheelRadius;
  double leftAngleX = Math.cos(leftAngle) * (outerWheelRadius + arrowPointerSize);
  double leftAngleY = Math.sin(leftAngle) * (outerWheelRadius + arrowPointerSize);
  double rightAngleX = Math.cos(rightAngle) * (outerWheelRadius + arrowPointerSize);
  double rightAngleY = Math.sin(rightAngle) * (outerWheelRadius + arrowPointerSize);
  arrowPointerPath.reset();
  arrowPointerPath.moveTo((float) tipAngleX + centerX, (float) tipAngleY + centerY);
  arrowPointerPath.lineTo((float) leftAngleX + centerX, (float) leftAngleY + centerY);
  arrowPointerPath.lineTo((float) rightAngleX + centerX, (float) rightAngleY + centerY);
  arrowPointerPath.lineTo((float) tipAngleX + centerX, (float) tipAngleY + centerY);
  valuePointerArrowPaint.setColor(Color.HSVToColor(colorHSV));
  valuePointerArrowPaint.setStyle(Style.FILL);
  canvas.drawPath(arrowPointerPath, valuePointerArrowPaint);
  valuePointerArrowPaint.setStyle(Style.STROKE);
  valuePointerArrowPaint.setStrokeJoin(Join.ROUND);
  valuePointerArrowPaint.setColor(Color.BLACK);
  canvas.drawPath(arrowPointerPath, valuePointerArrowPaint);
}

代码示例来源:origin: googlemaps/android-maps-utils

/**
 * Helper function for creation of color map
 * Interpolates between two given colors using their HSV values.
 *
 * @param color1 First color
 * @param color2 Second color
 * @param ratio  Between 0 to 1. Fraction of the distance between color1 and color2
 * @return Color associated with x2
 */
static int interpolateColor(int color1, int color2, float ratio) {
  int alpha = (int) ((Color.alpha(color2) - Color.alpha(color1)) * ratio + Color.alpha(color1));
  float[] hsv1 = new float[3];
  Color.RGBToHSV(Color.red(color1), Color.green(color1), Color.blue(color1), hsv1);
  float[] hsv2 = new float[3];
  Color.RGBToHSV(Color.red(color2), Color.green(color2), Color.blue(color2), hsv2);
  // adjust so that the shortest path on the color wheel will be taken
  if (hsv1[0] - hsv2[0] > 180) {
    hsv2[0] += 360;
  } else if (hsv2[0] - hsv1[0] > 180) {
    hsv1[0] += 360;
  }
  // Interpolate using calculated ratio
  float[] result = new float[3];
  for (int i = 0; i < 3; i++) {
    result[i] = (hsv2[i] - hsv1[i]) * (ratio) + hsv1[i];
  }
  return Color.HSVToColor(alpha, result);
}

代码示例来源:origin: wangdan/AisenWeiBo

private Bitmap createColorWheelBitmap(int width, int height) {
  Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
  int colorCount = 12;
  int colorAngleStep = 360 / 12;
  int colors[] = new int[colorCount + 1];
  float hsv[] = new float[] { 0f, 1f, 1f };
  for (int i = 0; i < colors.length; i++) {
    hsv[0] = (i * colorAngleStep + 180) % 360;
    colors[i] = Color.HSVToColor(hsv);
  }
  colors[colorCount] = colors[0];
  SweepGradient sweepGradient = new SweepGradient(width / 2, height / 2, colors, null);
  RadialGradient radialGradient = new RadialGradient(width / 2, height / 2, colorWheelRadius, 0xFFFFFFFF, 0x00FFFFFF, TileMode.CLAMP);
  ComposeShader composeShader = new ComposeShader(sweepGradient, radialGradient, PorterDuff.Mode.SRC_OVER);
  colorWheelPaint.setShader(composeShader);
  Canvas canvas = new Canvas(bitmap);
  canvas.drawCircle(width / 2, height / 2, colorWheelRadius, colorWheelPaint);
  return bitmap;
}

代码示例来源:origin: wangdan/AisenWeiBo

colorViewPaint.setColor(Color.HSVToColor(colorHSV));
canvas.drawPath(colorViewPath, colorViewPaint);
SweepGradient sweepGradient = new SweepGradient(centerX, centerY, new int[] { Color.BLACK, Color.HSVToColor(hsv), Color.WHITE }, null);
sweepGradient.setLocalMatrix(gradientRotationMatrix);
valueSliderPaint.setShader(sweepGradient);
valuePointerPaint.setColor(Color.HSVToColor(new float[] { 0f, 0f, 1f - colorHSV[2] }));

代码示例来源:origin: gzu-liyujiang/AndroidPicker

protected void setColor(int selectedColor, boolean updatePointers) {
  Color.colorToHSV(selectedColor, mHSV);
  if (mIsBrightnessGradient) {
    mSelectedColorGradient[0] = getColorForGradient(mHSV);
    mSelectedColor = Color.HSVToColor(mHSV);
    buildShader();
    if (mLastX != Integer.MIN_VALUE) {
      mHSV[2] = pointToValueBrightness(mLastX);
    }
    selectedColor = Color.HSVToColor(mHSV);
  }
  if (updatePointers) {
    updatePointerPosition();
  }
  mSelectedColor = selectedColor;
  invalidate();
  dispatchColorChanged(mSelectedColor);
}

代码示例来源:origin: robolectric/robolectric

@Test
 public void HSVToColorShouldReverseColorToHSV() {
   float[] hsv = new float[3];
   Color.colorToHSV(Color.RED, hsv);

   assertThat(Color.HSVToColor(hsv)).isEqualTo(Color.RED);
 }
}

代码示例来源:origin: PhilJay/MPAndroidChart

Color.blue(originalColor), _hsvBuffer);
_hsvBuffer[2] *= 0.5f;
final int color = Color.HSVToColor(Color.alpha(originalColor), _hsvBuffer);

相关文章