Transparenz in HEX-Farbwerten
Lesedauer: < 1 Minute

Gerade wenn man mit Designerinnen oder Designern zusammenarbeiten, sind Transparenzen in HEX-Farbwerten öfters mal ein Thema. Denn es wird meist eine Akzentfarbe definiert und diese dann z.B. über verschiedene Transparenzen verstärkt oder abgeschwächt. Es kommt nun jedoch vor, dass man nur die Information wie 40% Deckkraft bekommt und keinen eigenen HEX-Farbwert. Hier muss nun vom Entwickler umständlich gerechnet werden, wie man 40% Deckkraft abbildet. In diesem Beitrag stelle ich nun eine Tabelle zur Verfügung, wo man direkt die Werte ablesen kann und gleichzeitig gibt es noch einen kleinen Code-Schnipsel, welcher den entsprechenden Wert „berechnet“.

Deckkraft in ProzentHEX-WertDeckkraft in ProzentHEX-Wert
0 %0051 %82
1 %0352 %85
2 %0553 %87
3 %0854 %8A
4 %0A55 %8C
5 %0D56 %8F
6 %0F57 %91
7 %1258 %94
8 %1459 %96
9 %1760 %99
10 %1A61 %9C
11 %1C62 %9E
12 %1F63 %A1
13 %2164 %A3
14 %2465 %A6
15 %2666 %A8
16 %2967 %AB
17 %2B68 %AD
18 %2E69 %B0
19 %3070 %B3
20 %3371 %B5
21 %3672 %B8
22 %3873 %BA
23 %3B74 %BD
24 %3D75 %BF
25 %4076 %C2
26 %4277 %C4
27 %4578 %C7
28 %4779 %C9
29 %4A80 %CC
30 %4D81 %CF
31 %4F82 %D1
32 %5283 %D4
33 %5484 %D6
34 %5785 %D9
35 %5986 %DB
36 %5C87 %DE
37 %5E88 %E0
38 %6189 %E3
39 %6390 %E6
40 %6691 %E8
41 %6992 %EB
42 %6B93 %ED
43 %6E94 %F0
44 %7095 %F2
45 %7396 %F5
46 %7597 %F7
47 %7898 %FA
48 %7A99 %FC
49 %7D100 %FF
50 %80

Um nun nicht jedes Mal in der Tabelle nach dem passenden HEX-Wert zu schauen, zeige ich euch eine kleine Funktion, welche diese Aufgabe automatisch für uns übernimmt.

Als Eingabeparameter wird die Angabe der Deckkraft in Prozent erwartet und am Ende erhalten wir die HEX-Repräsentation der Deckkraft, wie es bereits die Tabelle anzeigt. Man kann die Methode nun auch leicht modifizieren, so dass diese bereits die Farbe als HEX-Wert entgegen nimmt und dann die Farbe inkl. Deckkraft zurückliefert.

private string PercentToHex(double percentValue)
{
  // check that p is between 0 and 100
  var percent = Math.Max(0, Math.Min(100, percentValue)); 

  // calculate nearest integer (0 - 255) of percent
  var intValue = (int)Math.Round(percentValue / 100 * 255); 
	
  // get hexadecimal representation of intValue
  var hexValue = intValue.ToString("X"); 
	
  // return corresponding alpha value
  return hexValue.PadRight(2, '0').ToUpper();
}

Mit diesen zwei Hilfsmitteln ist es nun relativ leicht die gewünschten Farbwerte in seiner eigenen App zu verwenden.

NuGet-Paket mit einem Icon versehen MVVM Code mit Source Generatoren vereinfachen Xamarin.Forms Controls: RepeaterView