private void drawColorDiamond(Canvas canvas, double hueAngle, double radius) {
int pureColor, brightColor, darkColor;
double leftAngle = hueAngle + Math.toRadians(120);
double rightAngle = hueAngle - Math.toRadians(120);
float tipAngleX = xToDraw(Math.cos(hueAngle) * radius);
float tipAngleY = yToDraw(Math.sin(hueAngle) * radius);
float leftAngleX = xToDraw(Math.cos(leftAngle) * radius);
float leftAngleY = yToDraw(Math.sin(leftAngle) * radius);
float rightAngleX = xToDraw(Math.cos(rightAngle) * radius);
float rightAngleY = yToDraw(Math.sin(rightAngle) * radius);
mTrianglePath.reset();
mTrianglePath.moveTo(tipAngleX, tipAngleY);
mTrianglePath.lineTo(rightAngleX, rightAngleY);
mTrianglePath.lineTo(leftAngleX, leftAngleY);
mTrianglePath.lineTo(tipAngleX, tipAngleY);
// pureColor
mHSV[0] = mColorHSV[0];
mHSV[1] = 1; mHSV[2] = 1;
pureColor = Color.HSVToColor(mHSV);
// brightColor
mHSV[1] = 0; mHSV[2] = 1;
brightColor = Color.HSVToColor(mHSV);
// darkColor
mHSV[1] = 1; mHSV[2] = 0;
darkColor = Color.HSVToColor(mHSV);
Shader gradient1 = new LinearGradient(leftAngleX, leftAngleY, tipAngleX, tipAngleY, brightColor, pureColor, TileMode.CLAMP);
Shader gradient2 = new LinearGradient(leftAngleX, leftAngleY, rightAngleX, rightAngleY, brightColor, darkColor, TileMode.CLAMP);
ComposeShader composeShader = new ComposeShader(gradient1, gradient2, PorterDuff.Mode.MULTIPLY);
mColorPaint.setShader(composeShader);
canvas.drawPath(mTrianglePath, mColorPaint);
}
ColorPicker.java 文件源码
java
阅读 40
收藏 0
点赞 0
评论 0
项目:planetcon
作者:
评论列表
文章目录