AlertDialog: Como remover bordas pretas acima e abaixo da vista

Esta pergunta foi feita antes:O título personalizado AlertDialog tem borda preta

Mas não foi respondido satisfatoriamente - e está faltando alguma informação.

Estou tentando criar um diálogo personalizado no Android sem um título e sem nenhum botão na parte inferior.

No entanto, a caixa de diálogo resultante tem "bordas" / "espaçamento" pretos / algo na parte superior e inferior da exibição.

Dea documentação:

Uma caixa de diálogo feita com a classe de diálogo base deve ter um título. Se você não chamar setTitle (), o espaço usado para o título permanecerá vazio, mas ainda visível. Se você não quiser um título, crie sua caixa de diálogo personalizada usando a classe AlertDialog. No entanto, como um AlertDialog é criado mais facilmente com a classe AlertDialog.Builder, você não tem acesso ao método setContentView (int) usado acima. Em vez disso, você deve usar setView (View). Esse método aceita um objeto View, portanto, você precisa inflar o objeto View raiz do layout do XML.

Então, foi o que eu fiz:

Welcome.java

<code>public class Welcome  extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.welcome);

        LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.welcomedialog, (ViewGroup)findViewById(R.id.layout_root));

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setView(layout);
        builder.create().show();
    }
}
</code>

welcomedialog.xml

<code><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="@drawable/texturebg"
              android:id="@+id/layout_root"
              android:orientation="vertical"
              android:padding="40px">
    ...
</LinearLayout>
</code>

NOTA: Eu tentei usarFrameLayout como a raizViewGroup ao invés deLinearLayout de acordo com uma sugestão que encontrei em algum lugar - mas isso não ajudou.

Resultado

Sugestão setBackgroundDrawable
<code>public class Welcome  extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.welcome);

        LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.welcomedialog, (ViewGroup)findViewById(R.id.layout_root));

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setView(layout);
        AlertDialog dialog = builder.create();

        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));

        dialog.show();
    }
}
</code>

Não funcionou para mim.

questionAnswers(5)

yourAnswerToTheQuestion