<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 ImageButton transparente para colocar esses botões em um SurfaceView. Mas o Eclipse me dá um erro no projeto assim que eu incluir a linha transparente no xml.
Por favor ajude.
android
transparent
imagebutton
surfaceview
Namratha
fonte
fonte
Respostas:
Tente usar null como plano de fundo ...
fonte
SurfaceView
deve permitir que você coloque seus botões sobre uma superfície, mas observe: "Isso pode ser usado para colocar sobreposições como botões na parte superior da superfície, embora note que isso pode ter um impacto no desempenho, pois uma mistura alfa completa o composto será executado sempre que a superfície for alterada ". de developer.android.com/reference/android/view/SurfaceView.htmlNÃO USE UM LAYOUT TRANSAPENTE OU NULL, pois o botão (ou a exibição genérica) não será mais destacado ao clicar !!!
Use isso nas especificações do botão:
fonte
android:background="?android:selectableItemBackgroundBorderless"
Você também pode usar uma cor transparente:
fonte
Developer option: Show GPU overdraw
e ver a diferença entre definir um plano de fundo para@null
e@android:color/transparent
.Definir o plano de fundo como
"@null"
fará com que o botão não tenha efeito quando clicado. Esta será uma escolha melhor.Mais tarde, descobri que usando
também é uma boa solução. E você pode herdar esse atributo em seu próprio estilo.
fonte
selectableItemBackground
possui um benefício adicional de fazer com que o botão altere os estados quando clicado. As outras soluções fazem com que o botão apareça não clicável.em tempo de execução, você pode usar o seguinte código
fonte
Eu acredito que a resposta aceita deve ser:
android:background="?attr/selectableItemBackground"
É o mesmo que a resposta de @ lory105, mas usa a biblioteca de suporte para compatibilidade máxima (o
android:
equivalente está disponível apenas para API> = 11)fonte
Remova esta linha:
E no seu conjunto de classes de atividade
Você pode definir o nível alfa de 0 a 255
o significa transparente e 255 significa opaco.
fonte
A melhor maneira é usar o código de cor transparente
use o código de cor # 00000000 para tornar qualquer coisa transparente
fonte
@android:color/transparent
sem valores codificados.@android:
referência diretamente no layout é considerado um valor codificado, pois se você deseja alterá-lo, ainda precisa navegar no layout para encontrá-lo. Gostaria de declarar algo como isso<item name="something">@android:color/transparent</item>
e usar o meu próprio valor no layout para que eu possa encontrá-lo facilmente no meu resources.xml arquivo e alterá-lo sem ter que procurá-la no layoutUse
ImageView
... ele tem fundo transparente por padrão ...fonte
Eu já estava adicionando algo ao plano de fundo. Isso funcionou para mim:
(Android Studio 3.4.1)
Edição : só funciona no API api nível 21 e acima. para compatibilidade, use isso em vez disso
fonte
Usa isto:
fonte
Defina o plano de fundo do ImageButton como @null em XML
fonte
Use "@ nulo" . Funcionou para mim.
fonte
Está
android:background="@android:color/transparent"
fonte
É definida programaticamente a cor de fundo como transparente
fonte
Programaticamente, isso pode ser feito por:
fonte
android:background="@drawable/transparent"
). De qualquer forma, estou apenas sugerindo uma possível razão para o voto negativo; Não estou dizendo que é justificado.No
Background
atributo XML set, para qualquerWhite(#FFFFFF)
tom ou tom de cor, seBlack(#000000)
você quiser transparência, basta colocar 80 antes do código hash real.fonte
Eu usei um transparente
png
para oImageButton
e oImageButton
trabalhado.fonte