Defina um fundo transparente de uma visão de imagem no Android
-
18-09-2019 - |
Pergunta
Estou usando uma visualização da web na qual estou adicionando uma visualização de imagem. Como posso definir o plano de fundo desta exibição de imagem como transparente?
Eu tentei o seguinte:
mImageview.setBackgroundResource(R.color.trans);
Onde trans
→ <color name="trans">#00000000 </color>
.
Solução
Em seu XML defina o Background
atribuir a qualquer cor, White(#FFFFFF)
sombra ou Black(#000000)
sombra. Se você deseja transparência, basta colocar 80 antes do código de hash real:
#80000000
Isso mudará qualquer cor que você desejar para uma transparente .. :)
Outras dicas
Você pode definir o fundo transparente de qualquer layout, qualquer visualização ou qualquer componente adicionando este código no XML:
android:background="@android:color/transparent"
Além do que Harshad mencionou:
Dois caracteres hexadecimais podem ser anexados a qualquer código de cores hexadecimal. Os dois primeiros caracteres em um código de cores hexadecimais de 8 dígitos representa sua opacidade no Android.
Os dois caracteres hexadecimais podem variar de 00 a FF. Por exemplo,
- HEXCONAL OPAQUE NORMAL- "#000000"
- Totalmente transparente - "#00000000"
- Totalmente opaco - "#FF000000"
- 50% transparente - "#7F000000"
Dessa forma, você pode alterar qualquer cor para qualquer nível de transparência.
Para encontrar o prefixo hexadecimal de uma porcentagem:
Divida o número percentual de 100 e multiplique por 255 para obter o valor decimal. Converter o decimal em hexadecimal aqui.
Por exemplo, por 50%, 50/100 * 255 = 127. Usando o link, obtemos valor hexadecimal 7F.
Se você deseja adicionar uma transparência de 20% ou 30%, preça mais dois caracteres ao código hexadecimal, como o CC.
Observação
android:background="#CCFF0088"
em xml
Onde CC é o valor alfa, FF é o fator vermelho, 00 é o fator verde e 88 é o fator azul.
Algum código de opacidade:
Valores de opacidade hexadecimal
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
Você também pode definir a opacidade programaticamente como:
yourView.getBackground().setAlpha(127);
Defina a opacidade entre 0 (totalmente transparente) a 255 (completamente opaco). O 127,5 é exatamente 50%.
Você pode criar qualquer nível de transparência usando a fórmula fornecida. Se você quer meio transparente:
16 |128 Where 128 is the half of 256.
|8 -0 So it means 80 is half transparent.
E para 25% de transparência:
16 |64 Where 64 is the quarter of 256.
|4 -0 So it means 40 is quarter transparent.
Use o código abaixo para preto:
<color name="black">#000000</color>
Agora, se você quiser usar a opacidade, poderá usar o código abaixo:
<color name="black">#99000000</color>
E o abaixo para o código de opacidade:
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
Use este código para cor transparente
android:background="@android:color/transparent"
Já existe uma constante predefinida. Usar Color.TRANSPARENT
.
Já existe um transparente embutido no Android: r.color.Transparent. http://developer.android.com/reference/android/r.color.html#transparent
Mas acho que você pode querer fazer o plano de fundo da imagem que está colocando no WebView Transparent, por exemplo, com um PNG transparente, em vez do fundo ImageView. Se a imagem real não for transparente, o fundo ImageView não poderá ser visto através dela.
Caso você queira no código, apenas:
mComponentName.setBackgroundColor(Color.parseColor("#80000000"));
Ou, como alternativo, analise o ID do recurso com o seguinte código:
mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
Para aqueles que ainda estão enfrentando esse problema, você pode tentar issoelement.getBackground().setAlpha(0);
No seu arquivo XML, defina um atributo "alfa"
tal como
android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque
Você pode fornecer qualquer valor entre 0,0 e 1,0 em decimal para aplicar a transparência necessária. Por exemplo, 0,5 transparência é ideal para componente desativado
Experimente este código :)
É um código HEXA totalmente transparente - "#00000000"
Mais uma maneira simples:
mComponentName.setBackgroundResource(android.R.color.transparent);
Outra opção de trabalho que encontrei é definir android:background="@null"
Use o seguinte para transparência completa:
#00000000
Quando tentei com o #80000000, recebi uma sobreposição transparente preta que não quero. Tente alterar os dois primeiros dígitos; controla o nível de transparência, como
#00000000
#10000000
#20000000
#30000000
Você também pode usar View.setAlpha(float)
para mudar a visibilidade com precisão.
0 seria transparente, 1 totalmente visível. ;)
Tente usar o seguinte código. Isso o ajudará na íntegra ou mais.
Um arquivo .xml projetado para usar este código para definir a cor do plano de fundo:
android:background="#000000"
ou
android:background="#FFFFFF"
Ou você pode defini -lo programaticamente também.
Além disso, você pode usar este código programaticamente:
image.setBackgroundDrawable(getResources().getDrawable( R.drawable.llabackground));
Além disso, este código para definir a cor do plano de fundo também programaticamente:
image.setBackgroundColor(Color.parseColor("#FFFFFF"));
Este código para o mesmo programaticamente:
image.setBackgroundColor(getResources().getColor(Color.WHITE));
A cor depende da sua escolha de qual cor você deseja usar para transparente. Use principalmente uma cor branca ou #ffffff.
Em relação a R.drawable.llabackground
: Esta linha de código é para o seu estilo de fundo, como algo especial ou diferente para o seu objetivo. Você também pode usar isso.
ImageView.setBackground(R.drawable.my_background);
ImageView.setBackgroundResource(R.color.colorPrimary);
ImageView.getImageAlpha();
ImageView.setAlpha(125); // transparency
Experimente isso:
#aa000000
Para transparência 000000 = preto, você pode alterar esses seis números para a cor desejada.