自定义Dialog

来源:互联网 发布:淘宝代购加盟 编辑:程序博客网 时间:2024/05/16 10:42

这是本人的第一篇博客,写博客的目的是分享知识传播经验,回馈那些帮助过我的人,同时也是在提升自我;

当然,我所要讲的在网上肯定可以找得到,那有人问我为什么我要写这篇博客?答案是:我想去感恩,去回报帮助过我的那些博客,同时我想总结分享一些我认为比较重要的知识点以方便刚入门的小伙伴学习,初来乍到还请各位多多指点。

下面要基于AlertDialog实现自定义布局的效果:

首先来看效果图:

dialog效果图

实现步骤:利用Dialog子类AlertDialog加载自定义布局文件实现如上效果:

1.在Activity中:

private AlertDialog alertDialog;private void alertDialog() {        View view = getLayoutInflater().inflate(R.layout.layout_dialog, null);        Button bt = (Button) view.findViewById(R.id.btn);        bt.setOnClickListener(this);        alertDialog = new AlertDialog.Builder(this, R.style.TransparentBackgroundDialog)                .setView(view)                .create();        alertDialog.show(); }

调用alertDialog()即可弹框,其中为btn设置点击事件,点击btn后 dialog消失:alertDialog.dismiss();

2.加载自定义布局 layout_dialog.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:paddingLeft="20dp"    android:paddingRight="20dp"    android:background="@drawable/bg_dialog"    android:orientation="vertical">    <TextView        android:text="自定义Dialog"        android:layout_marginTop="10dp"        android:textColor="#333"        android:textSize="16sp"        android:layout_width="240dp"        android:layout_height="wrap_content"/>    <TextView        android:text="在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。"        android:layout_marginTop="10dp"        android:textColor="#666"        android:textSize="16sp"        android:layout_width="240dp"        android:layout_height="wrap_content"/>    <Button        android:id="@+id/btn_sure"        android:layout_width="240dp"        android:layout_height="40dp"        android:layout_marginTop="20dp"        android:layout_marginBottom="20dp"        android:textSize="16sp"        android:textColor="#f8f8f8<span style="font-family: Arial, Helvetica, sans-serif; color: rgb(169, 183, 198);">"</span>        android:text="我知道了"        android:background="@drawable/common_green_corner_selector"/></LinearLayout>

3.为dialog设置主题,自定义主题可以设置dialog弹出时的透明度 在style.xml中

    <style name="TransparentBackgroundDialog" parent="@android:style/Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowNoTitle">true</item>                                                                                    <!--#00000000 透明效果-->        <item name="android:background">@color/transparent</item>        <item name="android:windowBackground">@color/de_transparent</item>        <item name="android:backgroundDimEnabled">true</item>        <item name="android:textColor">@color/text_40</item>        <!--代表dialog弹出时dialog之外界面可见部分的透明度0到1,值越小越透明--></span>        <item name="android:backgroundDimAmount">0.4</item>    </style>


4.实现圆角:只要指定layout_dialog.xml 根布局为圆角白色背景即可实现如上效果;

android:background="@drawable/bg_dialog"
在drawlable中:bg_dialog.xml

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color="@color/common_white"/>    <corners        android:bottomLeftRadius="13dp"        android:bottomRightRadius="13dp"        android:topLeftRadius="13dp"        android:topRightRadius="13dp" />    <size        android:width="240dp"        android:height="240dp" /></shape>
以上代码即可实现如图效果;







0 0
原创粉丝点击