优秀案例

AD Dialog仿饿了么弹窗

2017-10-24  本文已影响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传送门

上一篇下一篇

猜你喜欢

热点阅读