So machen Sie einen Hintergrund auf Android 20% transparent


Antworten:


1038

Stellen Sie sicher, dass die Farbe 80% im Alphakanal hat. Zum Beispiel für die rote Verwendung #CCFF0000:

<TextView
   ...
   android:background="#CCFF0000" />

Im Beispiel CCist die Hexadezimalzahl für 255 * 0.8 = 204. Beachten Sie, dass die ersten beiden hexadezimalen Ziffern für den Alphakanal gelten. Das Format ist #AARRGGBB, wo AAist der Alpha-Kanal, RRist der rote Kanal, GGist der grüne Kanal und BBist der blaue Kanal.

Ich gehe davon aus, dass 20% transparent 80% undurchsichtig bedeutet. Wenn Sie den anderen Weg gemeint haben, anstatt zu CCverwenden, 33welches ist das Hexadezimal für 255 * 0.2 = 51.

Um den richtigen Wert für einen Alpha-Transparenzwert zu berechnen, gehen Sie folgendermaßen vor:

  1. Bei einem Transparenzprozentsatz von beispielsweise 20% wissen Sie, dass der undurchsichtige Prozentwert 80% beträgt (dies ist 100-20=80)
  2. Der Bereich für den Alpha-Kanal beträgt 8 Bit ( 2^8=256), was bedeutet, dass der Bereich von 0 bis 255 reicht.
  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. Konvertieren Sie den in 3. erhaltenen Wert in Basis 10 in hexadezimal (Basis 16). Sie können Google für diesen oder einen beliebigen Taschenrechner verwenden. Geben Sie bei Google "204 to hexa" ein und Sie erhalten den Hexadezimalwert. 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 heißt FF0000, Sie haben CCFF0000.

In der Android-Dokumentation finden Sie Farben .


Verwenden Sie für weiße Farbe mit Transparenz entsprechend der Frage android:background="#CCFFFFFF".
Ich bin

Wie wende ich diese Regel für einen Hintergrund mit Bild an?
user1090751

1517

Verwenden Sie den folgenden Code für Schwarz:

<color name="black">#000000</color>

Wenn ich jetzt die Deckkraft verwenden möchte, können Sie den folgenden Code verwenden:

 <color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->

Und unten für den Deckkraftcode: und alle Deckkraftstufen hier

Hex-Opazitätswerte

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 möchten, welcher Code für Transparenz gilt, müssen Sie den folgenden Link sehen und sich keine Sorgen machen, dass Sie sich an etwas in Bezug auf transparenten Code erinnern: -

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

textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));

3
Als ich das sah, benutzte ich # 99ffffff und es funktionierte gut für mich, danke
nawaab saab

Wie wende ich diese Regel für einen Hintergrund mit Bild an?
user1090751

149

Sie können die Farbopazität verwalten, 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 

1
Was trägt dies zu den vorhandenen Antworten bei?
Code-Apprentice

6
@ Code-Apprentice Ich denke, diese Antwort ist nützlich, wenn Sie eine feinkörnigere Transparenz wie 87% oder 54% benötigen, wie in material.google.com/style/color.html#color-color-schemes
Bruce

5
Ja, gestern musste ich ein Alpha von 13% verwalten und habe beschlossen, mein Suchergebnis zu diesem nützlichen Thread hinzuzufügen.
Carlol

Was wäre, wenn ich ein LinearLayout ohne Farbe vollständig transparent machen wollte?
Si8

1
Alle Ansichten sind standardmäßig transparent. Sie können mLinearLayout.setBackgroundColor (Color.TRANSPARENT) programmgesteuert verwenden. oder android: background = "@ android: color / transparent" in Ihrer XML, wenn Sie es aus bestimmten Gründen erzwingen müssen (offensichtlich wird diese Farbe nicht von den
untergeordneten

106

Verwenden Sie eine Farbe mit einem Alpha-Wert wie #33------und legen Sie sie mithilfe des XML-Attributs als Hintergrund für Ihren editText fest 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


91

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.


17
@koti, weil deine textViewVariable ist null.
Yugidroid

schöne elegante Lösung. Ich kann dies auf einen Listenelementhintergrund anwenden, wenn ich es auswähle - so bekomme ich etwas Farbe, aber es konkurriert nicht mit dem Elementtext. Sehr cool, danke!
Gene Bo

setAlpha (int) wird zugunsten von setAlpha (float) abgelehnt, wobei 0 vollständig transparent und 1 vollständig undurchsichtig ist. myImage.setAlpha (0.5f);
Polmabri

@polmabri, nicht wirklich. myImage.setAlpha(0.5f);Wendet das Alpha auf die Ansicht selbst an, aber was ich in meiner Antwort zeige, wird auf den Hintergrund der Ansicht angewendet, der gezeichnet werden kann.
Yugidroid

Dies kann zu Grafikfehlern führen! Mit Vorsicht und vielen Tests verwenden.
Michael

74

In Android Studio gibt es ein integriertes Tool zum Anpassen der Farbe und des Alpha / Opazitäts-Werts :

Android Passen Sie die Farbopazität an


32

Siehe Screenshot

Ich habe drei Ansichten gemacht. In der ersten Ansicht stelle ich die volle Farbe (kein Alpha) ein, in der zweiten Ansicht die halbe Farbe (0,5 Alpha) und in der dritten Ansicht die helle Farbe (0,2 Alpha).

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

Datei activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:gravity = "center"
    android:orientation = "vertical"
    tools:context = "com.example.temp.MainActivity" >

    <View
        android:id = "@+id/fullColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip" />

    <View
        android:id = "@+id/halfalphaColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip"
        android:layout_marginTop = "20dip" />

    <View
        android:id = "@+id/alphaColorView"
        android:layout_width = "100dip"
        android:layout_height = "100dip"
        android:layout_marginTop = "20dip" />

</LinearLayout>

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


30

Wir können auch in gewisser Weise transparent machen.

Weißer Farbcode - FFFFFF

20% weiß - # 33 FFFFFF

20% - 33

70% weiß - # B3 FFFFFF

70% - B3

Alle Hex-Werte von 100% bis 0%

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% - 3319% - 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


1
Erstaunliche Antwort. Mach weiter.
Tarun

22

Alle Hex-Werte von 100% bis 0% Alpha. Sie können jede Farbe mit den unten genannten 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

19

Jetzt bieten Android Studio 3.3 und eine neuere Version eine integrierte Funktion zum Ändern eines Alpha- Werts der Farbe.

Klicken Sie einfach im Android Studio Editor auf eine Farbe und geben Sie den Alpha-Wert in einpercentage .

Weitere Informationen finden Sie im Bild unten

Geben Sie hier die Bildbeschreibung ein


18

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

Da API 11+der Bereich von 0fbis 1f(einschließlich) reicht, 0ftransparent und 1fundurchsichtig sein:

  • android:alpha="0.0" das ist unsichtbar

  • android:alpha="0.5" durchschauen

  • android:alpha="1.0" voll sichtbar

So funktioniert das.


1

7
<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.9"
        />

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


3

Siehe Popularität unter textView mit diesem

     android:alpha="0.38"

Geben Sie hier die Bildbeschreibung ein

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).


  <TextView
            style="@style/TextAppearance.AppCompat.Caption"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:alpha="0.38"
            android:gravity="start"
            android:textStyle="bold"
            tools:text="1994|EN" />

Android: Alpha = "0,38"

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

3

In Kotlin können Sie Alpha wie folgt verwenden:

   //Click on On.//
    view.rel_on.setOnClickListener{
        view.rel_off.alpha= 0.2F
        view.rel_on.alpha= 1F

    }

    //Click on Off.//
    view.rel_off.setOnClickListener {
        view.rel_on.alpha= 0.2F
        view.rel_off.alpha= 1F
    }

Das Ergebnis ist wie in diesen Screenshots.20% transparent

Hoffe das wird dir helfen. Danke


1

Ich weiß, das ist eine sehr alte Frage.

Wenn Sie einen Farbwert verwenden möchten, können Sie auch die Kurzversion davon mit verwenden #ARGB. Wo Aist der Wert für den Alpha-Kanal.

Bei einer weißen Farbe gibt es folgende Transparenzwerte:

#FFFF  -     0%
#EFFF  -   6,7%
#DFFF  -  13,3%
#CFFF  -  20,0%
#BFFF  -  26,7%
#AFFF  -  33,3%
#9FFF  -  40,0%
#FFF8  -  46,7%
#7FFF  -  53,3%
#6FFF  -  60,0%
#5FFF  -  66,7%
#4FFF  -  73,3%
#3FFF  -  80,0%
#2FFF  -  86,7%
#1FFF  -  93,3%
#0FFF  - 100,0%

Sie können also TextViewdie folgende Zeile für 20% Transparenz hinzufügen:

<TextView
    android:background="#CFFF"
    ... />

0

Hier ist eine programmatische Lösung aus @Aromeros Antwort zur Berechnung des Hexadezimalwerts für den Alphakanal. :) :)

 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();
}

3
Die Frage wurde für Android getaggt. Dieser Code unterstützt Android nicht.
Pawan

0

Versuchen Sie diesen Code :)

Es ist ein vollständig transparenter Hex-Code - "# 00000000"


0

Wenn Sie die Farbe in Kotlin zu 50% transparent machen möchten,

val percentage = 50f/100 //50%
ColorUtils.setAlphaComponent(resources.getColor(R.color.whatEverColor), (percentage * 255).toInt())
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.