Antworten:
Stellen Sie sicher, dass die Farbe 80% im Alphakanal hat. Zum Beispiel für die rote Verwendung #CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
Im Beispiel CC
ist 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 AA
ist der Alpha-Kanal, RR
ist der rote Kanal, GG
ist der grüne Kanal und BB
ist der blaue Kanal.
Ich gehe davon aus, dass 20% transparent 80% undurchsichtig bedeutet. Wenn Sie den anderen Weg gemeint haben, anstatt zu CC
verwenden, 33
welches 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:
100-20=80
)2^8=256
), was bedeutet, dass der Bereich von 0 bis 255 reicht.255 * 0.8 = 204
. Bei Bedarf auf die nächste Ganzzahl runden.0xCC
.FF0000
, Sie haben CCFF0000
.android:background="#CCFFFFFF"
.
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
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)));
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
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=" "
.
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.
textView
Variable ist null
.
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.
In Android Studio gibt es ein integriertes Tool zum Anpassen der Farbe und des Alpha / Opazitäts-Werts :
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:
<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
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
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
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
Es gibt einen XML-Wert alpha
, der doppelte Werte annimmt.
Da API 11+
der Bereich von 0f
bis 1f
(einschließlich) reicht, 0f
transparent und 1f
undurchsichtig sein:
android:alpha="0.0"
das ist unsichtbar
android:alpha="0.5"
durchschauen
android:alpha="1.0"
voll sichtbar
So funktioniert das.
Siehe Popularität unter textView mit diesem
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 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.
Hoffe das wird dir helfen. Danke
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 A
ist 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 TextView
die folgende Zeile für 20% Transparenz hinzufügen:
<TextView
android:background="#CFFF"
... />
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();
}