自定义Dialog的详细步骤

第一步: 给Dialog设置一个风格主题:无边框全透明背景

在res->valus->styles.xml 下新建一个styles

    <style name="dialog" parent="android:style/Theme.Dialog">

            <!--背景颜色及和透明程度-->

            <item name="android:windowBackground">@android:color/transparent</item>

            <!--是否去除标题 -->

            <item name="android:windowNoTitle">true</item>

            <!--是否去除边框-->

            <item name="android:windowFrame">@null</item>

            <!--是否浮现在activity之上  -->

            <item name="android:windowIsFloating">false</item>

            <!--背景是否模糊-->

            <item name="android:backgroundDimEnabled">false</item>

        </style>


第二步:新建自定义view 类 继承Dialog,在构造方法中引用刚才写好的styles(粗体部分)

public class MyDialog extends Dialog {

     public LoginRestltDialog(@NonNull Context context) {

                 //引用样式

                   super(context,R.style.dialog);

               }

     @Override

      protected void onCreate(Bundle savedInstanceState) {

               super.onCreate(savedInstanceState);

               //引入布局

                setContentView(R.layout.dialog);

    }

   //定义其他需要的方法

}

第三步:创建布局

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="#11ffffff">

    <LinearLayout

        android:layout_width="260dp"

        android:layout_height="wrap_content"

        android:layout_centerInParent="true"

        android:background="@drawable/dialog_share"

        android:orientation="vertical">

        <TextView

            android:id="@+id/title"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_gravity="center"

            android:layout_margin="15dp"

            android:gravity="center"

            android:text="消息提示"

            android:textColor="#38ADFF"

            android:textSize="16sp" />

        <TextView

            android:id="@+id/message"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginLeft="20dp"

            android:layout_marginRight="20dp"

            android:text="提示消息" />

        <View

            android:layout_width="match_parent"

            android:layout_height="1px"

            android:layout_marginTop="15dp"

            android:background="#E4E4E4" />

        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="40dp"

            android:orientation="horizontal">

            <Button

                android:id="@+id/no"

                android:layout_width="0dp"

                android:layout_height="match_parent"

                android:layout_marginLeft="10dp"

                android:layout_weight="1"

                android:background="@null"

                android:gravity="center"

                android:singleLine="true"

                android:text="No"

                android:textColor="#7D7D7D"

                android:textSize="16sp" />

            <View

                android:layout_width="1px"

                android:layout_height="match_parent"

                android:background="#E4E4E4" />

            <Button

                android:id="@+id/yes"

                android:layout_width="0dp"

                android:layout_height="match_parent"

                android:layout_marginRight="10dp"

                android:layout_weight="1"

                android:background="@null"

                android:gravity="center"

                android:singleLine="true"

                android:text="Yes"

                android:textColor="#38ADFF"

                android:textSize="16sp" />

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>


第四步:定义dialog的背景框

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

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <solid android:color="#ffffff" /> 

    <stroke 

        android:width="0.8dp" 

        android:color="#ffffff" /> 

    <!-- 圆角 --> 

    <corners android:radius="8dp" /> 


</shape>

最后在需要的地方调用即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容