J'ai été en charge d'iOS pour mon travail jusqu'à présent, mais je suis également impliqué dans le développement Android probablement parce qu'il y a peu d'ingénieurs dans le domaine maintenant. Je suis jeune, mais j'étudie Java car c'est une expérience très précieuse dans mon futur développement de carrière. (La tendance est probablement Kotlin) Je vais donc parler de la méthode bloquée dans la pratique.
bright.java
public int convertColorFromHSV(final int color, final float brightness) {
final float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
hsv[2] -= brightness;
return Color.HSVToColor(hsv);
}
Vous pouvez maintenant régler la luminosité. Étant donné que le maximum de luminosité est de 1 (100%), il s'agit d'un ajustement du pourcentage à assombrir à partir de 1. Par exemple, si vous souhaitez réduire la luminosité de 15% par rapport à la couleur d'origine Remplacez «couleur» par la couleur d'origine et 0,15 par «luminosité».
(Référence) Couleur du document Android https://developer.android.com/reference/android/graphics/Color
Au fait La luminosité est un type d'espace colorimétrique HSV. L'espace HSV est l'un des espaces colorimétriques gérés par l'infographie. Teinte, Saturation Chroma, Luminosité Luminosité Valeur Il est composé de 3 composants.
La classe Color est un espace colorimétrique RVB ou un espace colorimétrique ARVB.
Avec la méthode ci-dessus
Color.colorToHSV(color, hsv);
Lorsque vous frappez, cela devient un tableau de float [] hsv La teinte, la saturation et la clarté sont stockées en fonction des index 0, 1 et 2 du tableau hsv. hsv [0]: teinte hsv [1]: Saturation hsv [2]: Luminosité est.
Les valeurs de 0,0 à 360,0 sont stockées pour la teinte. saturation, Les valeurs de 0,0 à 1,0 sont enregistrées pour la légèreté.
J'y ai été accro pendant environ une heure sans savoir comment utiliser cette méthode colorToHSV.
Recommended Posts