Odpowiedzi:
Upewnij się, że kolor ma 80% w kanale alfa. Na przykład do użycia czerwonego #CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
W tym przykładzie CC
jest liczbą szesnastkową dla 255 * 0.8 = 204
. Zauważ, że pierwsze dwie cyfry szesnastkowe odnoszą się do kanału alfa. Format to #AARRGGBB
, gdzie AA
jest kanał alfa, RR
czerwony kanał, GG
zielony kanał i BB
niebieski kanał.
Zakładam, że 20% przezroczystości oznacza 80% nieprzezroczystości. Jeśli miałeś na myśli inny sposób, zamiast CC
użycia, 33
który jest szesnastkowy 255 * 0.2 = 51
.
Aby obliczyć prawidłową wartość przezroczystości alfa, możesz wykonać następującą procedurę:
100-20=80
)2^8=256
), co oznacza, że zakres wynosi od 0 do 255.255 * 0.8 = 204
. W razie potrzeby zaokrąglij do najbliższej liczby całkowitej.0xCC
.FF0000
będziesz miał CCFF0000
.Kolory można znaleźć w dokumentacji systemu Android .
android:background="#CCFFFFFF"
.
Użyj czarnego kodu poniżej:
<color name="black">#000000</color>
Teraz, jeśli chcę użyć krycia, możesz użyć poniższego kodu:
<color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->
A poniżej kod krycia: i cały poziom krycia tutaj
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
Jeśli zawsze zapominasz, jaki kod jest przezroczysty, musisz zobaczyć poniższy link i nie martwić się, że pamiętasz cokolwiek dotyczącego przezroczystego kodu: -
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));
Możesz zarządzać kryciem kolorów, zmieniając pierwsze 2 znaki w definicji koloru:
# 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
Użyj koloru o wartości alfa podobnej #33------
i ustaw go jako tło tekstu editText za pomocą atrybutu XML android:background=" "
.
255 * 0,2 = 51 → w kodzie szesnastkowym 33
Możesz spróbować zrobić coś takiego:
textView.getBackground().setAlpha(51);
Tutaj możesz ustawić krycie od 0 (całkowicie przezroczysty) do 255 (całkowicie nieprzezroczysty). 51 to dokładnie 20%, czego chcesz.
textView
zmienna to null
.
myImage.setAlpha(0.5f);
stosuje alfa do samego Widoku, ale to, co pokazuję w mojej odpowiedzi, jest stosowane do rysowania tła Widoku.
Zrobiłem trzy widoki. W pierwszym widoku ustawiam pełny kolor (bez alfa), w drugim widoku ustawiam kolor w połowie (0,5 alfa), a w trzecim widoku ustawiam jasny kolor (0,2 alfa).
Możesz ustawić dowolny kolor i uzyskać kolor za pomocą alfa, używając poniższego kodu:
<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;
}
}
Wersja Kotlin:
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))
}
Gotowy
Możemy również uczynić przejrzystym w nieprzystosowany sposób.
Kod koloru białego - FFFFFF
20% bieli - # 33 FFFFFF
20% - 33
70% bieli - # B3 FFFFFF
70% - B3
Wszystkie wartości szesnastkowe od 100% do 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% - 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
Wszystkie wartości szesnastkowe od 100% do 0% alfa. Można ustawić dowolny kolor z wartościami alfa wymienionymi poniżej. np. #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
Teraz Android Studio 3.3 i nowsze wersje mają wbudowaną funkcję zmiany wartości alfa koloru,
Wystarczy kliknąć kolor w edytorze studia Android i podać wartość alfapercentage
.
Aby uzyskać więcej informacji, zobacz poniższy obrazek
Istnieje wartość XML, alpha
która przyjmuje podwójne wartości.
Ponieważ API 11+
zakres jest od 0f
do 1f
(włącznie), 0f
bycie transparentnym i 1f
nieprzejrzystym:
android:alpha="0.0"
to jest niewidoczne
android:alpha="0.5"
widzieć przez
android:alpha="1.0"
w pełni widoczne
Tak to działa.
Zobacz popularność poniżej tekstu Zobacz, używając tego
android:alpha="0.38"
XML
android:color="#3983BE00" // Partially transparent sky blue
Dynamicznie
btn.getBackground (). setAlpha (128); // 50% przezroczystości
tv_name.getBackground (). setAlpha (128); // 50% przezroczystości
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: alfa = „0,38”
Text View alpha property set 0.38 to your textView visibility is faid
W Kotlinie można użyć takiego alfa,
//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
}
Wynik jest jak na tych zrzutach ekranu.
Mam nadzieję, że to ci pomoże
Wiem, to bardzo stare pytanie.
Jeśli chcesz użyć wartości koloru, możesz również użyć jej krótkiej wersji za pomocą #ARGB
. Gdzie A
jest wartość dla kanału alfa.
W przypadku koloru białego istnieją następujące wartości przezroczystości:
#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%
Możesz więc TextView
dodać następujący wiersz dla przejrzystości 20%:
<TextView
android:background="#CFFF"
... />
Oto programowe rozwiązanie z odpowiedzi @Aromero do obliczenia wartości szesnastkowej dla kanału alfa. :)
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();
}