Android启动页广告

1、前言

在Android项目开发中,经常会遇到需要实现启动页广告的需求。今天就来整理下启动页广告的实现,以便在今后的项目中拿来参考使用。

2、概述

实现思路:
1、在启动页初始化阶段,访问后端接口,获取广告数据,广告数据封装在JavaBean当中。
2、根据返回的数据中的广告类型,选择展示方式,比如静态图,Gif动图或者视频等,如果返回的广告数据为空,则在启动页资源初始化后直接跳转到主页面。
3、展示广告,并开始广告倒计时,点击跳过或者倒计时结束,则从启动页跳转到主页面。
总体实现思路如上,本文用到第三方框架Glide。

3、实现

创建工程,配置清单文件,记得在清单文件中加入以下权限:
 <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

关键代码如下。

    //倒计时Handler
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (time < 0) {
                mAdShowStatus = true;
                if (mHandler != null && mHandler.hasMessages(0)) {
                    mHandler.removeMessages(0);
                }
                enterToMain();
            } else {
                time = time - 1;
                ad_time_tv.setText("跳过" + time);
                mHandler.sendEmptyMessageDelayed(0, 1000);
            }
        }

    };
    //展示广告
    private void showAd(AdverBean bean) {
        ad_time_tv.setVisibility(View.VISIBLE);
        switch (bean.getAdvertType()) {
            case Constant.IMAGE_TYPE://Image类型
                final WeakReference<ImageView> imageViewWeakReference1 = new WeakReference<>(ad_iv);
                ImageView target1 = imageViewWeakReference1.get();
                if (target1 != null) {
                    Glide.with(this)
                            .load(bean.getAdvertUrl())
                            .into(target1);
                    time = 3;
                    ad_time_tv.setText("跳过" + time);
                    mHandler.sendEmptyMessageDelayed(0, 1000);
                }
                break;
            case Constant.GIF_TYPE://GIF类型
                final WeakReference<ImageView> imageViewWeakReference2 = new WeakReference<>(ad_iv);
                ImageView target2 = imageViewWeakReference2.get();
                if (target2!= null) {
                    Glide.with(this)
                            .load(bean.getAdvertUrl())
                            .into(target2);
                    time = 5;
                    ad_time_tv.setText("跳过" + time);
                    mHandler.sendEmptyMessageDelayed(0, 1000);
                }
                break;
            default:
                mAdShowStatus = true;
                enterToMain();
        }
    }

运行效果
代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值