终点marker 调整终点marker的添加和清除逻辑

This commit is contained in:
lianglihui
2021-12-14 19:04:54 +08:00
parent a2a89895ff
commit 98604261be
4 changed files with 67 additions and 6 deletions

View File

@@ -83,6 +83,57 @@ public class ColorUtils {
return gradientColorArr;
}
/**
* 对传入颜色生成梯度透明的颜色集合
*
* @param startColor 开始颜色
* @param startColor 结束颜色
* @param step 步长
* @return 生成的梯度颜色集合
*/
public static List<Integer> gradientAlpha_(String startColor, String centerColor, String endColor, int step) {
// 生成渐变色
List<Integer> gradientColorArr = new ArrayList<>();
// 将HEX转为RGB
int[] sColor = hexToArgb(startColor);
int[] cColor = hexToArgb(centerColor);
int[] eColor = hexToArgb(endColor);
if (step >= 3) {
int colorStep = (int) Math.floor(step/2);
// 计算每一步的差值
int aStep = (cColor[0] - sColor[0]) / colorStep;
int rStep = (cColor[1] - sColor[1]) / colorStep;
int gStep = (cColor[2] - sColor[2]) / colorStep;
int bStep = (cColor[3] - sColor[3]) / colorStep;
for (int i = 0; i < colorStep; i++) {
gradientColorArr.add(
Color.argb(aStep * i + sColor[0],
rStep * i + sColor[1],
gStep * i + sColor[2],
bStep * i + sColor[3]));
}
int aStep_ = (eColor[0] - cColor[0]) / colorStep;
int rStep_ = (eColor[1] - cColor[1]) / colorStep;
int gStep_ = (eColor[2] - cColor[2]) / colorStep;
int bStep_ = (eColor[3] - cColor[3]) / colorStep;
for (int i = 0; i < colorStep; i++) {
gradientColorArr.add(
Color.argb(aStep_ * i + cColor[0],
rStep_ * i + cColor[1],
gStep_ * i + cColor[2],
bStep_ * i + cColor[3]));
}
} else {
gradientColorArr.add(Color.argb(cColor[0], cColor[1], cColor[2], cColor[3]));
}
return gradientColorArr;
}
/**
* 获取一组渐变色数组
*