2

白い、縁取りのない、ポップアップ ビューを作成したい。これを実現するために、カスタム スタイルのカスタム ダイアログを使用します。

public Builder createNewDialog(int type) {
        AlertDialog.Builder dlg = null;
        switch (type) {
        case (1):

            dlg = new AlertDialog.Builder(new ContextThemeWrapper(this,
                    R.style.CustomDialogTheme));

            LayoutInflater inflater = this.getLayoutInflater();

            dlg.setView(inflater.inflate(R.layout.dialognewplayer, null))
                    .setPositiveButton("Add Player", null).setNegativeButton("Cancel", null).create();
            break;
        }
        return dlg;
    }

//styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="android:Theme.Light"></style>
    <style name="CustomDialogTheme" parent="android:Theme.Dialog">
         <item name="android:windowBackground">@color/transparent_color</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">#ffffff</item>
    </style>

</resources>

//そしてcolors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
       <color name="transparent_color">#ffffff</color>
</resources>

ただし、画像でわかるように、ポップアップにはいくつかのエラーがあります...最初のレイヤーにはまだ境界線があり、透明な背景はまだ黒く、二重レイヤーになっているように見えます..何か間違っていると思いますが、私はそれを見ていません...

ここに画像の説明を入力

4

1 に答える 1

2

半透明のテーマを使用し、Android独自の透明色を使用します。

<style name="CustomDialogTheme" parent="@android:style/Theme.Translucent">
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:background">@android:color/transparent</item>
</style>

于 2012-12-11T07:21:22.697 に答える