弹窗广告android_android 弹窗广告 - CSDN
  • 一.自定义dialog的使用 1.定义一个类继承dialog 2.修改style 3.加载布局 4.指定dialog在屏幕中的位置 /自定义一个类继承dialogpublic class AdDialog extends Dialog implements View.OnClickListener { private ...

    源码下载

    一.自定义dialog的使用

    1.定义一个类继承dialog
    2.修改style
    3.加载布局
    4.指定dialog在屏幕中的位置
    1. /自定义一个类继承dialog
    2. public class AdDialog extends Dialog implements View.OnClickListener {
    3. private Context context;
    4. public AdDialog(Context context) {
    5. // 更改样式,把背景设置为透明的
    6. super(context, R.style.LocatonDialogStyle);
    7. this.context = context;
    8. }
    9. @Override
    10. protected void onCreate(Bundle savedInstanceState) {
    11. super.onCreate(savedInstanceState);
    12. requestWindowFeature(Window.FEATURE_NO_TITLE);
    13. //加载dialog的布局
    14. setContentView(R.layout.view_location_dialog_dong);
    15. //拿到布局控件进行处理
    16. ImageView imageView = (ImageView) findViewById(R.id.mm);
    17. imageView.setOnClickListener(this);
    18. //初始化布局的位置
    19. initLayoutParams();
    20. }
    21. // 初始化布局的参数
    22. private void initLayoutParams() {
    23. // 布局的参数
    24. LayoutParams params = getWindow().getAttributes();
    25. params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER;
    26. params.alpha = 1f;
    27. getWindow().setAttributes(params);
    28. }
    29. @Override
    30. public void onClick(View v) {
    31. dismiss();
    32. }
    33. }
    2.主页面代码
    1. public class MainActivity extends AppCompatActivity {
    2. private RocketView mRocketView;
    3. @Override
    4. protected void onCreate(Bundle savedInstanceState) {
    5. super.onCreate(savedInstanceState);
    6. setContentView(R.layout.activity_main);
    7. AdDialog dialog = new AdDialog(this);
    8. dialog.show();
    9. }
    10. }
    3.布局和样式
    1. <!--弹出对话框-->
    2. <style name="LocatonDialogStyle" parent="@android:style/Theme.Dialog">
    3. <item name="android:windowBackground">@android:color/transparent</item><!-- 背景透明 -->
    4. <item name="android:windowAnimationStyle">@android:style/Theme.InputMethod</item>
    5. </style>
    1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. android:layout_width="match_parent"
    3. android:layout_height="match_parent"
    4. android:orientation="vertical" >
    5. <ImageView
    6. android:id="@+id/mm"
    7. android:src="@drawable/donghomesuccess"
    8. android:layout_width="match_parent"
    9. android:layout_height="match_parent"/>
    10. </RelativeLayout>

    展开全文
  • 安卓弹窗广告(自适应屏幕)

    千次阅读 2018-12-10 10:07:33
    转载请注明出处:... 内容:弹窗广告 特点:根据屏幕尺寸和原图片比例自适应 代码如下: package com.example.leixiansheng.addialog; import android.annotation.SuppressLint; impor...

    转载请注明出处:https://blog.csdn.net/mr_leixiansheng/article/details/81062588

    内容:弹窗广告

    特点:根据屏幕尺寸和原图片比例自适应

    代码如下:

    package com.example.leixiansheng.addialog;
    
    import android.annotation.SuppressLint;
    import android.app.Dialog;
    import android.content.Context;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.util.DisplayMetrics;
    import android.view.Gravity;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.ImageView;
    import android.widget.RelativeLayout;
    import android.widget.Toast;
    
    import com.bumptech.glide.Glide;
    import com.bumptech.glide.request.animation.GlideAnimation;
    import com.bumptech.glide.request.target.SimpleTarget;
    
    /**
     * Created by Leixiansheng on 2018/6/28.
     */
    
    public class AdDialog extends Dialog implements View.OnClickListener {
    
    	private Context context;
    	private float finalWidth;		//最终宽度
    	private float finalHeight;	//最终高度
    	private int padding = 50;		//屏幕边距间隔
    	private int picWidth;		//图片真实宽度
    	private int picHeight;		//图片真实高度
    	private String mUrl;
    
    
    	public AdDialog(Context context,String url) {
    		// 更改样式,把背景设置为透明的
    		super(context, R.style.LocationDialogStyle);
    		this.context = context;
    		mUrl = url;
    	}
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		requestWindowFeature(Window.FEATURE_NO_TITLE);
    		setContentView(R.layout.dialog_ad);
    
    		calculateHeightAndWidth();
    
    		//初始化布局的位置
    		initLayoutParams();
    		setCancelable(false);
    		setCanceledOnTouchOutside(false);
    	}
    
    	/**
    	 * 按实际图片比例对其的宽高进行缩放
    	 */
    	private void calculateHeightAndWidth() {
    		DisplayMetrics dm = context.getResources().getDisplayMetrics();
    		final int screenWidth = dm.widthPixels;
    		final int screenHeight = dm.heightPixels;
    
    		//获取图片真正的宽高
    		Glide.with(context)
    				.load(mUrl)
    				.asBitmap()//强制Glide返回一个Bitmap对象
    				.into(new SimpleTarget<Bitmap>() {
    					@Override
    					public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
    						picWidth = bitmap.getWidth();
    						picHeight = bitmap.getHeight();
    
    						if (picHeight > picWidth) {
    							//真实图片高度大于宽度时
    							finalHeight = screenHeight - padding * 2;
    							finalWidth = ((picWidth * 100) / picHeight) * finalHeight/100;
    						} else {
    							//真实图片宽度大于高度时
    							finalWidth = screenWidth - padding * 2;
    							finalHeight = ((picHeight * 100) / picWidth) * finalWidth/100;
    						}
    						if ((int) finalWidth > screenWidth || (int) finalHeight > screenHeight) {
    							//放大后的比例超出屏幕时
    							finalWidth = picWidth;
    							finalHeight = picHeight;
    						}
    						initAdView(finalWidth, finalHeight);
    					}
    				});
    	}
    
    	@SuppressLint("ResourceType")
    	private void initAdView(float width, float height) {
    		RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rl_ad);
    		ImageView ivAd = new ImageView(context);
    		ivAd.setScaleType(ImageView.ScaleType.CENTER_CROP);
    		ivAd.setId(222);
    		ivAd.setOnClickListener(this);
    //		RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(UIUtils.px2Dp((int) width), UIUtils.px2Dp((int) height));
    		RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams((int) width, (int) height);
    		params1.addRule(RelativeLayout.CENTER_HORIZONTAL);
    		params1.setMargins(0, dp2Px(50), 0, 0);
    		relativeLayout.addView(ivAd, params1);
    
    		Glide
    				.with(context)
    				.load(mUrl)
    				.crossFade()
    				.into(ivAd);
    
    		ImageView ivCancel = new ImageView(context);
    		ivCancel.setId(333);
    		ivCancel.setOnClickListener(this);
    		ivCancel.setImageResource(R.drawable.icon_ad_close);
    		RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(dp2Px(30), dp2Px(30));
    		params2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    		params2.addRule(RelativeLayout.ALIGN_END,222);
    		relativeLayout.addView(ivCancel,params2);
    	}
    
    	// 初始化布局的参数
    	private void initLayoutParams() {
    		// 布局的参数
    		WindowManager.LayoutParams params = getWindow().getAttributes();
    		params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER;
    		getWindow().setAttributes(params);
    	}
    
    	@Override
    	public void onClick(View v) {
    		switch (v.getId()) {
    			case 222:
    				Toast.makeText(context, "你点击了广告,即将进入···",Toast.LENGTH_SHORT).show();
    				dismiss();
    				break;
    			case 333:
    				dismiss();
    				break;
    		}
    	}
    
    	public int dp2Px(int dp){
            /*
            1、px = dp * (dpi / 160)
            2、px/dp = density;//像素密度比
            */
    		DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    //        int dpi = metrics.densityDpi;//获得当前设备的dpi ,像素密度
    		float density = metrics.density;//密度比
    		return (int) (density * dp + .5f);
    	}
    }

    动态布局可参考我的文章:安卓动态布局

    Main

    package com.example.leixiansheng.addialog;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import java.util.Random;
    
    public class MainActivity extends AppCompatActivity {
    
    	private String[] adUrls = {"http://pic17.photophoto.cn/20101028/0017029521232265_b.jpg",
    			"http://pic.58pic.com/58pic/13/56/51/95K58PICPFk_1024.jpg",
    			"http://img5.imgtn.bdimg.com/it/u=1615585387,2628665620&fm=27&gp=0.jpg",
    			"http://img1.imgtn.bdimg.com/it/u=1306190881,4135880992&fm=27&gp=0.jpg"};
    
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		randomAd();
    		new AdDialog(this, randomAd()).show();
    	}
    
    	private String randomAd() {
    		int i = (int) (Math.random() * (adUrls.length));		// 0 到 3  随机生成
    		return adUrls[i];
    	}
    }
    

    PS:当真实图片长度大于宽度时,图片可能距屏幕上方过近,自己修改padding值,或者增加setMargins的值即可。楼主就偷个懒啦,啊哈哈~~

    展开全文
  • 广告活动弹窗控件

    2016-11-07 10:29:50
    广告活动弹窗控件

    android-adDialog

    简介:广告活动弹窗控件

    更新日志

    • compile 1.0 2016/08/08 完成广告活动弹窗 1.0 版本

    • compile 1.0 2016/08/08 删除 demo 中约束引用(否则 AS2.2 以下编译有问题)

    在介绍具体的使用说明之前,我们先看一下简单的实现效果: 

    image

    使用说明

    • 显示一个默认广告弹窗,支持单广告活动、多广告活动,当弹窗显示多广告是默认显示底部小圆圈,当显示单活动时默认不显示底部小圆圈;

    • 默认支持弹窗从上,下,左,右,左上,右上,左下,右下等八个方向弹出,更可以设置从任意指定的角度(0-360)弹出;

    • 默认继承了弹性动画效果,可以设定弹性动画弹性参数,动画速度等;

    • 支持对弹窗背景透明色的更改,支持对弹窗透明,支持设置弹窗背景全屏显示或者是只在内容区域显示;

    • 支持设定弹窗宽高比,支持设置弹窗距离屏幕两侧距离,支持设置关闭按钮是否显示;

    • 支持对关闭按钮点击事件的回调,对每一项广告活动点击事件的回调等;

    • 支持对 ViewPager 滑动动画效果的设定,支持自定义 ViewPager 滑动动画效果;

    API 说明:

    所有的设置参数均返回 AdManager 对象,所以可以直接链式调用。

    AdManager adManager = new AdManager(MainActivity.this, advList);
    aDMamager.
    /**
     * 设置弹窗背景全屏显示还是在内容区域显示
     */
    .setOverScreen(true)
    /**
     * 设置 ViewPager 的滑动动画
     */
    .setPageTransformer(new DepthPageTransformer())
    /**
     * 设置弹窗距离屏幕两侧的距离(单位 dp)
     */
    .setPadding(100)
    /**
     * 设置弹窗的宽高比
     */
    .setWidthPerHeight(0.75f)
    /**
     * 设置弹窗的背景色(当弹窗背景设置透明时,此设置失效)
     */
    .setBackViewColor(Color.parseColor("#AA333333"))
    /**
     * 设置弹窗背景是否透明
     */
    .setAnimBackViewTransparent(true)
    /**
     * 设置弹窗关闭图标是否可见
     */
    .setDialogCloseable(false)
    /**
     * 设置弹窗弹性滑动弹性值
     */
    .setBounciness(15)
    /**
     * 设置弹窗弹性滑动速度值
     */
    .setSpeed(5)
    /**
     * 设定弹窗点击事件回调
     */
    .setOnImageClickListener(new AdManager.OnImageClickListener() {})
    /**
     * 设定关闭按钮点击事件回调
     */
    .setOnCliseClickListener(new OnClickListener() {})
    /**
     * 开始执行弹窗的显示操作,可传值为 0-360,0 表示从右开始弹出,逆时针方向,也可以传入自定义的方向值
     */
    .showAdDialog(AdConstant.ANIM_UP_TO_DOWN)
    

    使用方式:

    • 在 module 的 build.gradle 中执行 compile 操作
    compile 'cn.yipianfengye.android:ad-library:1.0'
    
    • 在代码中初始化数据
    /**
         * 初始化数据
         */
        private void initData() {
            advList = new ArrayList<>();
            AdInfo adInfo = new AdInfo();
            adInfo.setActivityImg("https://raw.githubusercontent.com/yipianfengye/android-adDialog/master/images/testImage1.png");
            advList.add(adInfo);
    
            adInfo = new AdInfo();
            adInfo.setActivityImg("https://raw.githubusercontent.com/yipianfengye/android-adDialog/master/images/testImage2.png");
            advList.add(adInfo);
        }
    

    这里只要是初始化图片的 UI 地址信息,方便我们的后续下载操作。

    • 执行弹窗的初始化与现实操作
    /**
     * 创建广告活动管理对象
     */
    AdManager adManager = new AdManager(MainActivity.this, advList);
    adManager.setOverScreen(true)
             .setPageTransformer(new DepthPageTransformer());
    /**
     * 执行弹窗的显示操作
     */
    adManager.showAdDialog(AdConstant.ANIM_DOWN_TO_UP);
    

    怎么样是不是很简单?下面我们可以来看一下具体 API。

    具体的 API 说明:

    • (1)自定义的弹窗弹出方向 API

    在执行 AdManager 的 showAdDialog 方法时,需要传递一个 int 型的 animType 参数,我们默认定义了八个该类型的参数,默认如下:

    // ####################### 弹出动画效果 ###########################
        /**
         * 广告活动弹窗动画-从上至下
         */
        public static final int ANIM_UP_TO_DOWN = -11;
        /**
         * 广告活动弹窗动画-从下至上
         */
        public static final int ANIM_DOWN_TO_UP = -12;
        /**
         * 广告活动弹窗动画-从左至右
         */
        public static final int ANIM_LEFT_TO_RIGHT = -13;
        /**
         * 广告活动弹窗动画-从右至左
         */
        public static final int ANIM_RIGHT_TO_LEFT = -14;
        /**
         * 广告活动弹窗动画-从左上弹出
         */
        public static final int ANIM_UPLEFT_TO_CENTER = -15;
        /**
         * 广告活动弹窗动画-从右上弹出
         */
        public static final int ANIM_UPRIGHT_TO_CENTER = -16;
        /**
         * 广告活动弹窗动画-从左下弹出
         */
        public static final int ANIM_DOWNLEFT_TO_CENTER = -17;
        /**
         * 广告活动弹窗动画-从右下弹出
         */
        public static final int ANIM_DOWNRIGHT_TO_CENTER = -18;
    

    好吧,如果你觉得还不够好,我想让弹窗从右上侧 30 度角的弹出可以么?这也是支持的,只需要你传递的 int 型的 animType 的时候传递 30 就好了,如下:

    /**
     * 执行弹窗的显示操作(参数的范围:0-360,0 表示从右侧弹出,逆时针旋转)
     */
    adManager.showAdDialog(30);
    

    那么我们看一下执行效果呢:

    image

    • (2)自定义弹窗距离屏幕两侧的距离以及弹窗的宽高比:
    /**
             * 自定义设置广告活动弹窗距离屏幕两侧距离以及宽高比
             */
            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AdManager adManager = new AdManager(MainActivity.this, advList);
    
                    adManager.setOnImageClickListener(new AdManager.OnImageClickListener() {
                        @Override
                        public void onImageClick(View view, AdInfo advInfo) {
                            Toast.makeText(MainActivity.this, "您点击了 ViewPagerItem...", Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setPadding(100)
                    .setWidthPerHeight(0.5f)
                    .showAdDialog(AdConstant.ANIM_UP_TO_DOWN);
                }
            });
    

    然后我们看一下执行效果:

    image

    怎么样?是不是发现弹窗的宽高比和距离屏幕两侧的距离发生了变化?

    • (3)自定义背景颜色,自定义弹窗是否覆盖全屏,关闭按钮是否显示
    /**
             * 自定义弹窗背景颜色,弹窗是否覆盖全屏,关闭按钮是否显示等
             */
            button3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AdManager adManager = new AdManager(MainActivity.this, advList);
    
                    adManager.setOnImageClickListener(new AdManager.OnImageClickListener() {
                        @Override
                        public void onImageClick(View view, AdInfo advInfo) {
                            Toast.makeText(MainActivity.this, "您点击了 ViewPagerItem...", Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setBackViewColor(Color.parseColor("#AA333333"))
                    .setDialogCloseable(false)
                    .showAdDialog(AdConstant.ANIM_UP_TO_DOWN);
                }
            });
    

    然后我们来看一下具体的实现效果:

    image

    可以看到我们更改了弹窗的背景颜色以及未显示关闭按钮

    • (4)自定义设置弹性动画弹性参数和速度参数
    /**
             * 自定义设定弹窗弹性参数和速度参数
             */
            button4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AdManager adManager = new AdManager(MainActivity.this, advList);
    
                    adManager.setOnImageClickListener(new AdManager.OnImageClickListener() {
                        @Override
                        public void onImageClick(View view, AdInfo advInfo) {
                            Toast.makeText(MainActivity.this, "您点击了 ViewPagerItem...", Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setBounciness(20)
                    .setSpeed(4)
                    .showAdDialog(AdConstant.ANIM_UP_TO_DOWN);
                }
            });
    

    然后我们看一下动画效果: 
    image

    为了明显的展示出动画效果,我们设置的弹性参数和速度参数比较大,是不是比较出来了这两个参数的作用?

    • (5)自定义设置弹窗 ViewPager 滑动动画:
    /**
             * 自定义设置弹窗 ViewPager 滑动动画
             */
            button5.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AdManager adManager = new AdManager(MainActivity.this, advList);
    
                    adManager.setOnImageClickListener(new AdManager.OnImageClickListener() {
                        @Override
                        public void onImageClick(View view, AdInfo advInfo) {
                            Toast.makeText(MainActivity.this, "您点击了 ViewPagerItem...", Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setPageTransformer(new RotateDownPageTransformer())
                    .showAdDialog(AdConstant.ANIM_UP_TO_DOWN);
                }
            });
    

    然后我们看一下弹窗的滑动动画:

    image

    这里我内置了三种 ViewPager 的滑动动画效果:

    DepthPageTransformer;
    RotateDownPageTransformer;
    ZoomOutPageTransformer;
    

    我们还可以自定义实现:PageTransformer 自定义出自己的滑动动画效果,更多关于 PageTransformer 的知识,可参考鸿洋大神的: Android 实现个性的 ViewPager 切换动画 实战 PageTransformer(兼容 Android3.0 以下)

    • (6)自定义关闭按钮点击事件回调,ViewPagerItem 点击事件回调
    /**
             * 自定义设置弹窗 ViewPagerItem 点击事件,关闭按钮点击事件回调
             */
            button6.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AdManager adManager = new AdManager(MainActivity.this, advList);
    
                    adManager.setOnImageClickListener(new AdManager.OnImageClickListener() {
                        @Override
                        public void onImageClick(View view, AdInfo advInfo) {
                            Toast.makeText(MainActivity.this, "您点击了 ViewPagerItem...", Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setOnCloseClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    Toast.makeText(MainActivity.this, "您点击了关闭按钮...", Toast.LENGTH_SHORT).show();
                                }
                            })
                    .showAdDialog(AdConstant.ANIM_UP_TO_DOWN);
                }
            });
    展开全文
  • Dialog的自定义,仿淘宝、天猫、京东等商城广告弹窗 学习,学习,学以致用 Dialog已经是安卓开发者的家常便饭了,经常用来作为一些提醒功能,但是它也可以拓展为广告弹窗效果,让我们来自定义一个广告的Dialog吧。...

    Dialog的自定义,仿淘宝、天猫、京东等商城广告弹窗


    学习,学习,学以致用

    Dialog已经是安卓开发者的家常便饭了,经常用来作为一些提醒功能,但是它也可以拓展为广告弹窗效果,让我们来自定义一个广告的Dialog吧。下面是今天要实现的效果图

    这里写图片描述

    一、自定义Dialog布局的实现

    Dialog的布局很简单,其实就是一个充满容器的图片,view_dialog_advertisement.xml

    <?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="wrap_content">
    
        <ImageView
            android:id="@+id/iv_advertisement"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="12dp"
            android:src="@drawable/welcome_advertisement" />
    
    </RelativeLayout>

    在Dialog里面放置我们要显示的效果图即可

    这里写图片描述

    二、自定义Dialog代码的实现

    public class MyAdvertisementView extends Dialog implements View.OnClickListener {
    
        public MyAdvertisementView(Context context) {
            super(context);
            setContentView(R.layout.view_dialog_advertisement);
            //设置点击布局外则Dialog消失
            setCanceledOnTouchOutside(true);
        }
    
        public void showDialog() {
            Window window = getWindow();
            //设置弹窗动画
            window.setWindowAnimations(R.style.style_dialog);
            //设置Dialog背景色
            window.setBackgroundDrawableResource(R.color.colorTransparent);
            WindowManager.LayoutParams wl = window.getAttributes();
            //设置弹窗位置
            wl.gravity = Gravity.CENTER;
            window.setAttributes(wl);
            show();
            findViewById(R.id.iv_advertisement).setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            dismiss();
        }
    }

    上面代码所做的事情

    1. 初始化设置Dialog显示的布局
    2. 提供一个方法弹出Dialog
    3. 设置Dialog里面控件的点击事件

    三、自定义Dialog的弹窗动画

    在代码中通过window.setWindowAnimations()设置我们的弹窗动画,下面来style.xml的代码

    <!-- dialog动画 -->
    <style name="style_dialog">
        <item name="android:windowEnterAnimation">@anim/anim_popup_zoom_enter</item>
        <item name="android:windowExitAnimation">@anim/anim_popup_zoom_exit</item>
    </style>

    anim_popup_zoom_enter.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <scale
            android:duration="500"
            android:fromXScale="0.8"
            android:fromYScale="0.8"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1.0"
            android:toYScale="1.0" />
    
        <alpha
            android:duration="500"
            android:fromAlpha="0"
            android:toAlpha="1.0" />
    </set>

    anim_popup_zoom_exit.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <scale
            android:duration="300"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="0.8"
            android:toYScale="0.8" />
    
        <alpha
            android:duration="300"
            android:fromAlpha="1.0"
            android:toAlpha="0" />
    </set>

    四、使用自定义Dialog

    在代码中只需要创建我们的Dialog对象,然后调用我们提供的弹窗方法即可

    MyAdvertisementView myAdvertisementView = new MyAdvertisementView(this);
    myAdvertisementView.showDialog();

    部分源码下载

    到这里的课程就结束,如果对基础控件感兴趣的朋友可以关注我博客的基础控件系列

    展开全文
  • 不少App在打开的时候需要弹出一个广告活动弹窗,点击广告活动弹窗中的图片就会跳转到一个H5页面,加载显示具体的活动内容等,为了方便大家的操作,我将其做成了一个标准控件:android-adDialog。需要说明的是,虽然...
  • Android弹窗页面的三种实现方式

    万次阅读 2018-12-20 10:09:44
    1.AlertDialog设置自定义view 2.自定义Dialog控件 3.PopupWindow   ...LayoutInflater inflater = LayoutInflater.from(getApplication());...View view = inflater.inflate(R.layout.dialog...
  • android 半透明弹窗

    2019-07-16 15:24:18
    <style name="edit_AlertDialog_style" parent="@android:style/Theme.Dialog"> <!--浮动--> <item name="android:windowIsFloating">true</item> <!--半透明...
  • 前日,一个朋友问我有没有好看的弹窗,功能不需要太难,说了一点需求,图: 然后我就写了个Demo给他。Activity的弹窗各种各样。很早就有,但是有的太过于单调,样式也不好看,有的自定义起来非常繁琐。 我结合...
  • Android自定义Dialog弹窗

    2019-05-29 14:41:47
    核心思想就是通过Dialog的构造函数来创建Dialog,然后给Dialog设置自定义布局 fun showAlertDialog(context: Context, title: String, message: CharSequence, positive: String, negative: String, cmListener: ...
  • 一个简单强大的广告活动弹窗控件
  • Android下屏幕锁屏弹窗的正确姿势

    万次阅读 2016-09-03 11:13:07
    最近在做一个关于屏幕锁屏悬浮窗的功能,于是在网上搜索了很多安卓屏幕锁屏的相关资料,鉴于网上的资料比较零碎,所以我在这里进行整理总结。本文将从以下两点对屏幕锁屏进行解析: 1. 如何监听系统屏幕锁屏 ...
  • Android弹窗合集

    2020-07-23 23:30:58
    整合Android弹窗代码,分别使用PopupWindow和Dialog实现常用的弹窗效果。 整合Android弹窗代码,分别使用PopupWindow和Dialog实现常用的弹窗效果。
  • 记录贴 防止以后忘记. 1.dialog布局 图片随便找的 <RelativeLayout xmlns:android=... android:layout_width="match_parent" android:layout_height="match_parent"> <Text
  • 参考Android的PopupWindow的详尽用法和解释 PopupWindow使用竟然如此简单!
  • 好久没写博客了,也好久没有做过自定义弹出框了,然后发现博客还给自定义Dialog弹窗留了个位置,今天就写一个最简单的自定义的Dialog弹出框老规矩,先上效果图:1.先写style文件,写一些要用到的样式:&lt;style name=&...
  • Android的service服务中开启弹窗

    千次阅读 2018-01-19 17:11:00
    /** * Created by lhy on 2018/1/11. * 1.定义一个类继承service 在dialog show方法之前添加如下代码,表示该dialog是一个系统的dialog dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_...
  • android8.1 屏蔽系统通知弹窗

    千次阅读 2019-02-16 10:48:42
    该解决办法只是把来通知时下拉的通知框屏蔽掉, 具体通知类容在后台仍然能查看 具体修改如下:   --- a/packages/SystemUI/src/...+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/Stat...
  • https://blog.csdn.net/u013836857/article/details/52046694
  • 安卓APP去广告弹窗

    千次阅读 2018-09-17 20:48:00
    学习笔记二:对APP内的弹窗广告以及APP初始化的广告进行去除 一、对需要去除广告的APK进行安装,查看其原始状态 以下为该APP初始化以及加密方式切换后会弹出的广告 二、利用Android kill 对该APK进行反编译 ...
  • 在网上找了大半天,都没有找到合适的例子,终于靠自己的努力,实现了这个功能 给大家分享一下效果图: //这是一个方法,直接放在onCreat方法里面就行了,我之前放的方法,没有进行耗时操作,就一直报找不到...
1 2 3 4 5 ... 20
收藏数 1,766
精华内容 706
关键字:

弹窗广告android