Wie man einen Hintergrund 20% transparent auf Android macht

Wie mache ich den Hintergrund einer Textview ungefähr 20% transparent (nicht vollständig transparent), wo eine Farbe im Hintergrund ist (dh weiß)?

Lassen Sie die Farbe 80% im Alphakanal haben. Zum Beispiel, für rot verwenden Sie #CCFF0000 :

  

Im Beispiel ist CC die Hexadezimalzahl für 255 * 0.8 = 204 . Beachten Sie, dass die ersten beiden Hexadezimalziffern für den Alphakanal gelten. Das Format ist #AARRGGBB , wobei AA der Alphakanal, RR der #AARRGGBB , GG der #AARRGGBB und BB der #AARRGGBB ist.

Ich gehe davon aus, dass 20% transparent 80% opak sind. Wenn Sie den anderen Weg gemeint haben, verwenden Sie statt CC 33 was für 255 * 0.2 = 51 hexadezimal ist.

Um den richtigen Wert für einen Alpha-Transparenzwert zu berechnen, können Sie folgendermaßen vorgehen:

  1. Bei einem Transparenzprozentsatz von beispielsweise 20% wissen Sie, dass der undurchsichtige Prozentwert 80% beträgt (dies entspricht 100-20=80 ).
  2. Der Bereich für den Alphakanal beträgt 8 Bit ( 2^8=256 ), dh der Bereich reicht von 0 bis 255.
  3. Projizieren Sie den undurchsichtigen Prozentsatz in den Alpha-Bereich, dh multiplizieren Sie den Bereich (255) mit dem Prozentsatz. In diesem Beispiel 255 * 0.8 = 204 . Bei Bedarf auf die nächste Ganzzahl runden.
  4. Konvertiere den in 3. erhaltenen Wert in der Basis 10 in hexadezimal (Basis 16). Sie können Google für diesen oder jeden Taschenrechner verwenden. Geben Sie “204 to hexa” ein und geben Sie den hexadezimalen Wert ein. In diesem Fall ist es 0xCC .
  5. Stellen Sie den in 4. erhaltenen Wert auf die gewünschte Farbe vor. Zum Beispiel für Rot, das FF0000 , haben Sie CCFF0000 .

Sie können sich die Android-Dokumentation für colors ansehen.

Verwenden Sie den folgenden Code für Schwarz:

 #000000 

Wenn ich nun die Opazität verwenden möchte, kannst du den folgenden Code verwenden:

  #99000000  

Und unten für Opazitätscode: und alle Deckkraftstufen hier

Hexadezimale Werte

 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00 

Wenn Sie immer vergessen, welchen Code für die Transparenz, dann müssen Sie unten sehen, Link und keine Sorge, etwas über den transparenten Code zu erinnern: –

https://github.com/duggu-hcd/TransparentColorCode

 textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor10(R.color.border_color))); 

Sie können die Deckkraft der Farbe ändern, indem Sie die ersten 2 Zeichen in der Farbdefinition ändern:

# 99 000000

 100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% — 9E 61% — 9C 60% — 99 59% — 96 58% — 94 57% — 91 56% — 8F 55% — 8C 54% — 8A 53% — 87 52% — 85 51% — 82 50% — 80 49% — 7D 48% — 7A 47% — 78 46% — 75 45% — 73 44% — 70 43% — 6E 42% — 6B 41% — 69 40% — 66 39% — 63 38% — 61 37% — 5E 36% — 5C 35% — 59 34% — 57 33% — 54 32% — 52 31% — 4F 30% — 4D 29% — 4A 28% — 47 27% — 45 26% — 42 25% — 40 24% — 3D 23% — 3B 22% — 38 21% — 36 20% — 33 19% — 30 18% — 2E 17% — 2B 16% — 29 15% — 26 14% — 24 13% — 21 12% — 1F 11% — 1C 10% — 1A 9% — 17 8% — 14 7% — 12 6% — 0F 5% — 0D 4% — 0A 3% — 08 2% — 05 1% — 03 0% — 00 

Verwenden Sie eine Farbe mit einem Alpha-Wert wie #33------ und legen Sie sie als Hintergrund Ihres editText mit dem XML-Attribut android:background=" " .

  1. 0% (transparent) -> # 00 in Hex
  2. 20% -> # 33
  3. 50% -> # 80
  4. 75% -> # C0
  5. 100% (undurchsichtig) -> #FF

255 * 0,2 = 51 → in Hex 33

Sie können versuchen, etwas zu tun wie:

 textView.getBackground().setAlpha(51); 

Hier können Sie die Deckkraft zwischen 0 (vollständig transparent) und 255 (vollständig undurchsichtig) einstellen. Die 51 ist genau die 20%, die Sie wollen.

In Android Studio gibt es ein eingebautes Werkzeug, um die Farbe und den Alpha / Opazitätswert anzupassen :

Android Adjust Color Opacity

Siehe Screenshot

Ich habe drei Ansichten genommen. In der ersten Ansicht habe ich die volle (keine Alpha) Farbe eingestellt, in der zweiten Ansicht habe ich die halbe (0,5 Alpha) Farbe und in der dritten Ansicht die helle Farbe (0,2 Alpha) eingestellt.

Mit dem folgenden Code können Sie eine beliebige Farbe festlegen und eine Farbe mit Alpha erhalten:

Datei activity_main.xml

      

Datei MainActivity.java

 public class MainActivity extends Activity { private View fullColorView, halfalphaColorView, alphaColorView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fullColorView = (View)findViewById(R.id.fullColorView); halfalphaColorView = (View)findViewById(R.id.halfalphaColorView); alphaColorView = (View)findViewById(R.id.alphaColorView); fullColorView.setBackgroundColor(Color.BLUE); halfalphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.5f)); alphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.2f)); } private int getColorWithAlpha(int color, float ratio) { int newColor = 0; int alpha = Math.round(Color.alpha(color) * ratio); int r = Color.red(color); int g = Color.green(color); int b = Color.blue(color); newColor = Color.argb(alpha, r, g, b); return newColor; } } 

Kotlin-Version:

 private fun getColorWithAlpha(color: Int, ratio: Float): Int { return Color.argb(Math.round(Color.alpha(color) * ratio), Color.red(color), Color.green(color), Color.blue(color)) } 

Erledigt

Es gibt einen XML-Wert alpha , der doppelte Werte annimmt.

Seit API 11+ der Bereich von 0f bis 1f (einschließlich), wobei 0f transparent und 1f opak ist:

  • android:alpha="0.0" das ist unsichtbar

  • android:alpha="0.5" durchsichtig

  • android:alpha="1.0" voll sichtbar

So funktioniert das.

Alle Hex-Werte von 100% bis 0% Alpha. Sie können jede beliebige Farbe mit den unten angegebenen Alpha-Werten einstellen. zB #FAFFFFFF (ARRGGBB)

 100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% — 9E 61% — 9C 60% — 99 59% — 96 58% — 94 57% — 91 56% — 8F 55% — 8C 54% — 8A 53% — 87 52% — 85 51% — 82 50% — 80 49% — 7D 48% — 7A 47% — 78 46% — 75 45% — 73 44% — 70 43% — 6E 42% — 6B 41% — 69 40% — 66 39% — 63 38% — 61 37% — 5E 36% — 5C 35% — 59 34% — 57 33% — 54 32% — 52 31% — 4F 30% — 4D 29% — 4A 28% — 47 27% — 45 26% — 42 25% — 40 24% — 3D 23% — 3B 22% — 38 21% — 36 20% — 33 19% — 30 18% — 2E 17% — 2B 16% — 29 15% — 26 14% — 24 13% — 21 12% — 1F 11% — 1C 10% — 1A 9% — 17 8% — 14 7% — 12 6% — 0F 5% — 0D 4% — 0A 3% — 08 2% — 05 1% — 03 0% — 00 
  

Alpha liegt in Android API 11+ zwischen 0 (transparent) und 1 (undurchsichtig)

Siehe Beliebtheit unter textView mit diesem

  android:alpha="0.38" 

Bildbeschreibung hier eingeben

XML

 android:color="#3983BE00" // Partially transparent sky blue 

Dynamisch

btn.getBackground (). setAlpha (128); // 50% transparent

tv_name.getBackground (). setAlpha (128); // 50% transparent

 Where the INT ranges from 0 (fully transparent) to 255 (fully opaque).  

android: alpha = “0,38”

 Text View alpha property set 0.38 to your textView visibility is faid 

Hier ist eine programmatische Lösung aus der Antwort von @Aromero , um den hexadezimalen Wert für den Alpha-Kanal zu berechnen. 🙂

  public static void main(String[] args) throws Exception { final Scanner scanner = new Scanner(System.in); int transPerc; float fPerc; System.out.println("Enter the transparency percentage without % symbol:"); while((transPerc=scanner.nextInt())>=0 && transPerc < =100){ fPerc = (float) transPerc / 100; transPerc = Math.round(255 * fPerc); System.out.println("= " + Integer.toHexString(transPerc)); System.out.print("another one please : "); } scanner.close(); } 

Probieren Sie diesen Code 🙂

Es ist ein vollständig transparenter Hex-Code – “# 00000000”