Wie mache ich den Hintergrund einer Textview
etwa 20% transparent (nicht vollständig transparent), wenn sich im Hintergrund eine Farbe befindet (d. H. Weiß)?
Stellen Sie sicher, dass die Farbe im Alphakanal 80% beträgt. Zum Beispiel für Rot verwenden Sie #CCFF0000
:
<TextView
...
Android:background="#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 ist, RR
der rote Kanal ist, GG
der grüne Kanal und BB
der blaue Kanal ist.
Ich gehe davon aus, dass 20% transparent 80% undurchsichtig bedeutet. Wenn Sie es anders verstanden haben, verwenden Sie anstelle von CC
33
, der das Hexadezimalzeichen für 255 * 0.2 = 51
ist.
Um den korrekten Wert für einen Alphatransparenzwert zu berechnen, können Sie folgendermaßen vorgehen:
100-20=80
).2^8=256
), was bedeutet, dass der Bereich von 0 bis 255 reicht.255 * 0.8 = 204
. Runden Sie bei Bedarf auf die nächste ganze Zahl.0xCC
.FF0000
, haben Sie CCFF0000
.Sie können die Android-Dokumentation für Farben anschauen.
Verwenden Sie den folgenden Code für Schwarz:
<color name="black">#000000</color>
Wenn ich 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 Deckkraft hier
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 die Transparenz verwendet wird, müssen Sie den Link unten sehen und sich keine Gedanken darüber machen, ob Sie sich an transparentem Code erinnern:
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor10(R.color.border_color)));
Sie können die Farbdeckkraft verwalten, indem Sie die ersten beiden 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 mithilfe des XML-Attributs Android:background=" "
als Hintergrund für Ihren editText fest.
255 * 0,2 = 51 → in hex 33
Sie können versuchen, etwas zu tun:
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.
Ich habe drei Ansichten vertreten. In der ersten Ansicht habe ich die volle Farbe (kein Alpha) eingestellt, in der zweiten Ansicht die halbe Farbe (0,5 Alpha) und in der dritten Ansicht die Lichtfarbe (0,2 Alpha).
Sie können eine beliebige Farbe festlegen und mit Alpha Farbe erhalten, indem Sie den folgenden Code verwenden:
<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>
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
Alle Hex-Werte von 100% bis 0% Alpha. Sie können jede Farbe mit den unten genannten Alpha-Werten einstellen. z. B. #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
Es gibt einen XML-Wert alpha
, der doppelte Werte akzeptiert.
Da API 11+
von 0f
bis 1f
(einschließlich) reicht, ist 0f
transparent und 1f
ist undurchsichtig:
Android:alpha="0.0"
das ist unsichtbar
Android:alpha="0.5"
durchsichtig
Android:alpha="1.0"
voll sichtbar
So funktioniert das.
<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(opaque)
Wir können auf diese Weise auch transparent machen.
Weißer Farbcode - FFFFFF
70% weiß - # B3 FFFFFF.
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
Siehe Popularität unter textView mit dieser Option
Android:alpha="0.38"
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
In Kotlin können Sie mit 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
}
Ergebnis ist wie in diesem Screenshot .
Hoffe das wird dir helfen. Danke
Versuchen Sie diesen Code :)
Es ist ein vollständig transparenter Hex-Code - "# 00000000"
Hier eine programmatische Lösung aus der Antwort von @Aromero , um den Hexadezimalwert für den Alphakanal 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();
}