android 加入广告页的思路以及实现。

本文介绍了Android应用中如何创建广告启动页,包括先显示logo再覆盖广告的逻辑,以及首次安装与后续打开的判断。文章提到需要记录安装状态并缓存广告图片以提高用户体验,同时提出了在无网络情况下如何处理的考虑。文中详细阐述了实现广告页的三个步骤:请求广告API并缓存数据,根据URL缓存图片,以及图片轮换和时间控制。作者提供了Demo供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天把实现的Demo上传了。

估计大家有看到许多app,都有广告启动页是吧,但是大家有没有好奇是怎么做出来的啦?

参考:当当app

我们可以观察到

  1. 已开始显示自己的logo页。
  2. 然后在把广告也覆盖在logo上面,同时显示跳过广告页的友好提示。
  3. 还有什么啦?(如果在第一次下载的时候怎么办了?显示广告还是引导页?
  4. 为什么它的会白屏一会了?
  5. 多长广告页可以定时更换。

其实有时候观察也就能出现答案哦

我们先看下最后一个(3)
我们不妨先卸载一个有广告页的app,在安装一次看看。
那么答案就是 先第一次引导页,然后第二次就广告页来了(蛮烦的,要什么广告)。

—————————————–开场白——————————————————-

这个时候我们也就需要记录(存储)一下,是否第一次安装或者第一次打开的状态。
那么我们什么时候才能,显示广告页啦?

当然是第二次打开,并且成功的把图片缓存到本地。有人会想为什么要把图片缓存到本地啦?
(有些应用把图片缓存到本地,并且也把广告显示的时间也存入本地)

参考一下:腾讯新闻app。

在我关闭网络进入时,还是有原来的广告,或者已经更新的广告出现,腾讯的app就可以看出来–上面的想法是对的(观察出真知,哈哈)
如果不缓存这些图片和信息,那么也就不能很快的让它们显示,并且自定义控制广告时间的跳转。(磁盘缓存对于从网络下载来说还是比较快的)
<—————————->
当然我也认同腾讯新闻app这样做
<—————————->
如果大家不信的话,可以在来看看当当app看看。
当我们没有网络的时候,打开app
在logo界面会显示 网络不好,进入的时候会再次弹出网络不好的提示。(这么认真观察有木有,点赞啦)

显然logo界面有什么网络操作,当我们再次打开网络,进入的时候就会看到广告页的出现。如果要选择怎么做广告页.-------答案显而易见。

——————————————- 功能实现步骤——————————

看了上面的分析,我认为需要在MainActivity 时候请求并且缓存数据。
step1:
请求广告Api,获取url数组,以及显示time,并且缓存。
step2:
根据url 为唯一表示缓存到sdCard中,必须在子线程中。这里需要多说点,如果有多张图片。在短时间类只下载3/4那么我们还显示吗?如果显示是显示3/4张吗?还是不显示。 我感觉还是不显示的好(做事情要完美咯)。就必须要加入 网络获取的urls.length 和已经下载的currentPage 进行对比,如果 urls.length ==currentPage 那么更新缓存数据的信息(这里其实可以扩展,在替换的时候,删除掉以前的图片缓存,赋予读者们吧,棒棒哒)。
step3:
这里我描述一下多张的情况:在广告的时间内,根据urls.leng/time 等于每一个 图片显示的事件,然后在进行时间内图片的轮换,到达时间,跳入下一个界面。

——————————————- 功能实现———————————————
具体的代码,我就不描述了,上面的思路已经说的蛮清楚了。不懂得可以看下Demo.
Demo 已经上传了。
下载地址—–

——————————————- 解决为什么它的会白屏一会了问题—–

我上传的Demo中并没有屏蔽这个问题:我在这里把解决方法贴出来,读者可以手动添加

    <style name="StartBg">
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">@drawable/guipagethree</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
在 AndroidManifest 更改Activity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值