我有一个自定义AlertDialog,我想使其背景完全透明。
通常,为了使 Activity 完全透明,我执行以下操作

  • 在xml布局中将背景设置为#00000000
  • list list 中的
  • 为 Activity 设置了android:theme="@android:style/Theme.Holo.Dialog"
  • 在onCreate中添加getWindow().setBackgroundDrawable(new ColorDrawable(0))
    但是现在我正在处理对话框,如何实现透明性?

  • 这是对话框代码:
    LayoutInflater inflater = getLayoutInflater();
        View dialoglayout = inflater.inflate(R.layout.activity_mine1,
            (ViewGroup) findViewById(R.layout.mine1));
        mine1 = new AlertDialog.Builder(this);
        mine1.setView(dialoglayout);
        mine1.show();
    
    而且我的xml只是带有其他 subview 的relativeLayout:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00000000" >
    
        ...
    
    </RelativeLayout>
    
    注意:我已经在这里查看过一些类似的帖子,但是它们似乎没有用。
    我的真正原因是我真正要使用的背景不是矩形。我可以在一项 Activity 中使用它。但是我想改用对话框。
    编辑:
    进一步玩耍,我有这个style.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="CustomDialog" parent="android:Theme.Holo.Dialog">
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowBackground">@android:color/transparent</item>
        </style>
    </resources>
    
    我添加为
    new AlertDialog.Builder(this, R.style.CustomDialog)
    

    最佳答案

    使用Dialog而不是AlertDialog.Builder,因此使用setContentView而不是setView。

    10-08 18:05
    查看更多