美文网首页优秀案例
AD Dialog仿饿了么弹窗

AD Dialog仿饿了么弹窗

作者: 成都大菠萝 | 来源:发表于2017-10-24 17:37 被阅读383次
    坚持学习每一天
    爱生活,爱分享 
    如果您喜欢我的文章,可以点击关注,喜欢
    

    某些APP上广告弹窗效果是这样的,

    anli.jpg

    ,自己看了一下结合以前的弹窗代码自己也写了个简单的DEMO。

    先看最终效果

    2.png

    弹窗大致相同,里面的布局和点击事件各种回调可以自己写,各种特效也可以自己加,先来实现弹窗。

    第一步:新建一个项目

    Freedialog

    第二步:设置弹窗属性
        <style name="dialog" parent="@android:style/Theme.Dialog">
            <!--去掉边框-->
            <item name="android:windowFrame">@null</item>
            <!--悬浮-->
            <item name="android:windowIsFloating">true</item>
            <!--半透明-->
            <item name="android:windowIsTranslucent">false</item>
            <!--不需要标题-->
            <item name="android:windowNoTitle">true</item>
            <!--背景透明-->
            <item name="android:windowBackground">@android:color/transparent</item>
            <!--允许模糊-->
            <item name="android:backgroundDimEnabled">true</item>
            <!--全屏幕-->
            <item name="android:windowFullscreen">true</item>
        </style>
    
    第三步:新建弹窗布局,在Activity里面创建Dialog加载布局
       //此为DEMO可自己进行封装,需要各种回调的自己加接口
        private void show_Dialog()
        {
            //创建兼容包dialog
            final AppCompatDialog dialog=new AppCompatDialog(MainActivity.this,R.style.dialog);
            //设置布局
            dialog.setContentView(R.layout.dialog_full);
           //设置宽高
            int devicewidth=DimenUtil.getScreenWidth(MainActivity.this);
            int deviceheight=DimenUtil.getScreenHeight(MainActivity.this);
            Window dialogWindow=dialog.getWindow();
            WindowManager.LayoutParams lp=dialogWindow.getAttributes();
            if(dialog!=null){
                lp.width=devicewidth;
                lp.height=deviceheight;
                lp.gravity= Gravity.CENTER;
            }
            dialog.show();
            AppCompatButton button=dialogWindow.findViewById(R.id.btn);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });
        }
    
    简单的布局
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="match_parent">
    
        <android.support.v7.widget.AppCompatImageView
            android:scaleType="fitXY"
            android:layout_centerHorizontal="true"
            android:id="@+id/ad"
            android:src="@mipmap/ad"
            android:layout_width="200dp"
            android:layout_height="200dp" />
        <android.support.v7.widget.AppCompatButton
            android:layout_marginTop="24dp"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/ad"
            android:id="@+id/btn"
            android:text="关闭"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>
    
    

    简单的AD弹窗就完成,可以按照具体业务自己扩展。
    github传送门

    相关文章

      网友评论

        本文标题:AD Dialog仿饿了么弹窗

        本文链接:https://www.haomeiwen.com/subject/axjxpxtx.html