Como ter um button transparente: Android
-
25-09-2019 - |
Pergunta
<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@drawable/transparent"></ImageButton>
Foi isso que tentei obter um botão de imagem transparente para colocar esses botões em uma visão de superfície. Mas o Eclipse me dá um erro no projeto assim que incluo a linha transparente no XML.
Por favor ajude.
Solução
Tente usar nulo para o fundo ...
android:background="@null"
Outras dicas
Não use um layout de transapência ou nulo Porque então o botão (ou a visualização genérica) não será mais destaque no clique !!!
Eu tive o mesmo problema e finalmente Eu encontrei o atributo correto da API Android para resolver o problema. Pode se aplicar a qualquer visualização.
Use isso nas especificações do botão:
android:background="?android:selectableItemBackground"
Você também pode usar uma cor transparente:
android:background="@android:color/transparent"
Definindo o plano de fundo para "@null"
fará com que o botão não tenha efeito quando clicado. Esta será uma escolha melhor.
style="?android:attr/borderlessButtonStyle"
Mais tarde eu achei isso usando
android:background="?android:attr/selectableItemBackground"
também é uma boa solução. E você pode herdar esse atributo em seu próprio estilo.
No tempo de execução, você pode usar o seguinte código
btn.setBackgroundDrawable(null);
Eu acredito que a resposta aceita deve ser:
android:background="?attr/selectableItemBackground"
É o mesmo que a resposta do @lory105, mas usa a biblioteca de suporte para obter a máxima compatibilidade (o android:
O equivalente está disponível apenas para API> = 11)
Remova esta linha:
android:background="@drawable/transparent">
E em sua classe de atividade conjunto
ImageButton btn = (ImageButton)findViewById(R.id.previous);
btn.setAlpha(100);
Você pode definir o nível alfa 0 a 255
o significa transparente e 255 significa opaco.
A melhor maneira é usar o código de cores transparente
android:background="#00000000"
Use o código de cores #00000000 para fazer qualquer coisa transparente
Usar ImageView
... tem fundo transparente por padrão ...
Defina o fundo do ImageButton como @Null em XML
<ImageButton android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/media_skip_backward"
android:background="@null"></ImageButton>
Usar "@nulo" . Funcionou para mim.
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/bkash"
android:id="@+id/bid1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@null" />
Isso é android:background="@android:color/transparent"
<ImageButton
android:id="@+id/imageButton"
android:src="@android:drawable/ic_menu_delete"
android:background="@android:color/transparent"
/>
Eu já estava adicionando algo ao fundo, então, essa coisa funcionou para mim:
android:backgroundTint="@android:color/transparent"
(Android Studio 3.4.1)
Isso é programaticamente definido como cor de fundo como transparente
ImageButton btn=(ImageButton)findViewById(R.id.ImageButton01);
btn.setBackgroundColor(Color.TRANSPARENT);
Programaticamente Isso pode ser feito por:
image_button.setAlpha(0f) // to make it full transparent
image_button.setAlpha(0.5f) // to make it half transparent
image_button.setAlpha(0.6f) // to make it (40%) transparent
image_button.setAlpha(1f) // to make it opaque
No seu conjunto XML Background
atribuir a qualquer cor White(#FFFFFF)
sombra ou Black(#000000)
Shade.
#80000000
Usa isto:
<ImageButton
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:padding="10dp"
android:src="@drawable/backbtn" />
<ImageButton
android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/media_skip_backward">
</ImageButton>
Eu usei um transparente png
para o ImageButton
, e as ImageButton
trabalhado.