Como faço para remover o fundo preto de uma caixa de diálogo no Android. A foto mostra o problema.
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
android
android-dialog
Programador
fonte
fonte
Respostas:
Adicione este código
Ou este aqui:
fonte
dialog.getWindow().setBackgroundDrawable(new ColorDrawableResource(R.color.transparent));
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
usar em java
Espero te ajudar!
fonte
Eu enfrentei o problema mais simples e a solução que encontrei foi a aplicação de um TEMA transparente do bachground. Escreva estas linhas nos seus estilos
E então adicione
no seu arquivo de manifesto principal, dentro do bloco da atividade de diálogo.
Além disso, no conjunto XML de atividades de diálogo
fonte
De alguma forma, a solução Zacharias não funcionou para mim, então usei o tema abaixo para resolver esse problema ...
Pode-se definir este tema para dialogar como abaixo
Aproveitar!!
fonte
Você pode usar o:
e a seguir está o documento:
fonte
A caixa de diálogo pop-up preenche a cor de fundo preta padrão ou a cor do tema, para que você precise definir o
TRANSPARENT
plano de fundo na caixa de diálogo. Experimente o código abaixo: -fonte
Se você quiser destruir o fundo escuro da caixa de diálogo, use este
fonte
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Objects.requireNonNull(alertDialog.getWindow()).setDimAmount(0); }
Um problema que encontrei com todas as respostas existentes é que as margens não são preservadas. Isso ocorre porque todos eles substituem o
android:windowBackground
atributo, responsável pelas margens, por uma cor sólida. No entanto, pesquisei no Android SDK e encontrei o fundo da janela padrão que pode ser desenhado e modificado um pouco para permitir diálogos transparentes.Primeiro, copie /platforms/android-22/data/res/drawable/dialog_background_material.xml para o seu projeto. Ou copie estas linhas para um novo arquivo:
Observe que
android:color
está definido como?attr/colorBackground
. Este é o cinza / branco sólido padrão que você vê. Para permitir que a cor definida emandroid:background
seu estilo personalizado seja transparente e mostre a transparência, tudo o que precisamos fazer é mudar?attr/colorBackground
para@android:color/transparent
. Agora ficará assim:Depois disso, vá para o seu tema e adicione isto:
Substitua
newly_created_background_name
pelo nome real do arquivo que você acabou de criar e substituasome_transparent_color
pelo fundo transparente desejado.Depois disso, tudo o que precisamos fazer é definir o tema. Use isso ao criar o
AlertDialog.Builder
:Em seguida, basta criar, criar e mostrar a caixa de diálogo como de costume!
fonte
Mesma solução que o zGnep, mas usando xml:
fonte
Tente isso no seu código:
definitivamente funcionará ... no meu caso ...! meu amigo
fonte
Foi o que fiz para obter translucidez com o AlertDialog.
Criou um estilo personalizado:
E, em seguida, crie a caixa de diálogo com:
fonte
No meu caso, a solução funciona assim:
Além disso, no Xml da caixa de diálogo personalizada:
fonte
use este código que funciona comigo:
fonte
Defina esses códigos de estilo com estilo
E simplesmente altere false para true abaixo da linha
Vai escurecer o seu fundo.
fonte
Atenção: Não use o construtor para alterar o plano de fundo.
mudar para
Ao usar o Dialog.builder, ele não está dando
getWindow()
opção nele.fonte
este é o meu caminho, você pode tentar!
fonte
Caso você tenha estendido a
DialogFrament
turma, você pode definir o tema com:E crie o tema personalizado no seu arquivo styles.xml (consulte a resposta de @ LongLv para obter parâmetros)
Não esqueça de adicionar
<item name="android:windowCloseOnTouchOutside">true</item>
se deseja que a caixa de diálogo seja fechada se o usuário tocar fora dela.fonte
Para quem usa uma caixa de diálogo personalizada com uma classe personalizada, é necessário alterar a transparência na classe, adicionar esta linha no onCreate ():
fonte
dialog.getWindow (). setBackgroundDrawable (novo ColorDrawable (ContextCompat.getColor (ctx, android.R.color.transparent)));
fonte
Certifique-se de
R.layout.themechanger
que não há cor de fundo porque, por padrão, a caixa de diálogo tem uma cor de fundo padrão.Você também precisa adicionar
dialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));
E finalmente
fonte