Respostas:
Faça com que a cor tenha 80% no canal alfa. Por exemplo, para uso em vermelho #CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
No exemplo, CC
é o número hexadecimal para 255 * 0.8 = 204
. Observe que os dois primeiros dígitos hexadecimais são para o canal alfa. O formato é #AARRGGBB
, onde AA
está o canal alfa, RR
é o canal vermelho, GG
é o canal verde e BB
é o canal azul.
Estou assumindo que 20% transparente significa 80% opaco. Se você quis dizer o contrário, em vez de CC
usar 33
qual é o hexadecimal para 255 * 0.2 = 51
.
Para calcular o valor adequado para um valor de transparência alfa, você pode seguir este procedimento:
100-20=80
)2^8=256
), significando que o intervalo varia de 0 a 255.255 * 0.8 = 204
. Arredonde para o número inteiro mais próximo, se necessário.0xCC
.FF0000
, você terá CCFF0000
.Você pode dar uma olhada na documentação do Android para obter cores .
android:background="#CCFFFFFF"
.
Use o código abaixo para preto:
<color name="black">#000000</color>
Agora, se eu quiser usar opacidade, você pode usar o código abaixo:
<color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->
E abaixo, para o código de opacidade: e todo o nível de opacidade aqui
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
Se você sempre esquecer o código de transparência, deverá ver o link abaixo e não se preocupe em lembrar-se de algo relacionado ao código transparente: -
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));
Você pode gerenciar a opacidade das cores alterando os 2 primeiros caracteres na definição de cores:
# 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
Você pode tentar fazer algo como:
textView.getBackground().setAlpha(51);
Aqui você pode definir a opacidade entre 0 (totalmente transparente) e 255 (completamente opaco). Os 51 são exatamente os 20% que você deseja.
textView
variável é null
.
myImage.setAlpha(0.5f);
aplica o alfa ao próprio View, mas o que mostro na minha resposta está sendo aplicado ao drawable de segundo plano do View.
Tomei três visualizações. Na primeira visualização, defino cores completas (sem alfa), na segunda, defino meia (0,5 alfa) e, na terceira, defino cores claras (0,2 alfa).
Você pode definir qualquer cor e obter cores com alfa usando o código abaixo:
<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;
}
}
Versão 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))
}
Feito
Também podemos tornar transparentes as coisas desinteressantes.
Código de cor branca - FFFFFF
20% branco - # 33 FFFFFF
20% - 33
70% branco - # B3 FFFFFF
70% - B3
Todo o valor hexadecimal de 100% a 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
Todo o valor hexadecimal de 100% a 0% alfa. Você pode definir qualquer cor com os valores alfa mencionados abaixo. por exemplo, #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
Agora, o Android Studio 3.3 e a versão posterior fornecem um recurso embutido para alterar um valor Alpha da cor,
Basta clicar em uma cor no editor de estúdio Android e fornecer o valor Alpha empercentage
.
Para mais informações, veja a imagem abaixo
Há um valor XML alpha
que recebe valores duplos.
Desde API 11+
o intervalo é de 0f
até 1f
(inclusive), 0f
sendo transparente e 1f
sendo opaco:
android:alpha="0.0"
isso é invisível
android:alpha="0.5"
transparente
android:alpha="1.0"
totalmente visível
É assim que funciona.
Veja a popularidade abaixo do texto
android:alpha="0.38"
XML
android:color="#3983BE00" // Partially transparent sky blue
Dinamicamente
btn.getBackground (). setAlpha (128); // 50% transparente
tv_name.getBackground (). setAlpha (128); // 50% transparente
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
No Kotlin, você pode usar o alfa assim,
//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
}
O resultado é como nas capturas de tela.
Espero que isso ajude você.
Eu sei, essa é uma pergunta muito antiga.
Se você deseja usar um valor de cor, também pode usar a versão curta dele com #ARGB
. Onde A
está o valor para o canal alfa.
No caso de uma cor branca, existem os seguintes valores de transparência:
#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%
Assim, você pode TextView
adicionar a seguinte linha para obter 20% de transparência:
<TextView
android:background="#CFFF"
... />
Aqui está uma solução programática da resposta da @Aromero para calcular o valor hexadecimal do canal 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();
}