热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安卓图像自动循环播放:广告展示优化方案

在电商平台的首页,自动轮播的广告是常见的营销手段。本文将详细介绍如何开发一个高效的广告轮播功能,实现广告内容的自动切换,提升用户体验和广告效果。我们将探讨关键技术点和优化策略,确保广告展示流畅且吸引用户注意力。
在各大电商网站的首页,都能看到自动轮播的广告,每隔数秒,就会自动切换其中的广告;今天我们就来制作一个广告轮播功能;需完成效果:

1,广告内容自动轮播

2,左右切换展示广告

3,手动选择指定广告

主要功能点:动态面板

一 准备工作

1,新建4个页面,作为点击广告后的跳转链接页面;(只作为一个跳转的地址)2,准备4张图片,用作首页的广告轮播素材

ae5e77843326dc9c8335f7917b451314.png

二 自动轮播

需实现效果:在网页的固定位置,每隔固定时间,自动切换当前位置显示的图片;操作步骤:1,在index页面中拉入一个“动态面板”原件,命名为“ad”;对“ad”新增3个面板状态,并将4个面板状态依次命名为“ad1”“ad2”“ad3”“ad4”;

f4f236f73059b46d4fd5498850cb3535.png

da5416e7af3d6da01a45a9a2ab2384d8.png

2,剪切一张我们事先准备好的图片,双击动态面板“ad”的状态1“ad1”,打开“ad1”的页面;复制图片;我们会发现,复制的图片与我们的动态面板大小不匹配,导致在动态面板中,只能显示一部分的图片;我们只需要选中动态面板“ad”,在属性中勾选“自动调整为内容尺寸”就可以解决这个问题;

0c85d576cbadeba97665ec3e87c9ccba.png

79a9062ba0120fdf243be0cedcf2cfbd.png 

3,重复第二步动作,我们将其他三个面板状态(ad2,ad3,ad4)依次放入事先准备好的图片;4,设置自动轮换,点击页面空白处(或按Esc键),以显示页面属性;双击属性中的“页面载入时”,打开页面载入时的交互设置界面;

ef4ce5e5a441192f4ac8969038023360.png

5,选择“设置面板状态”,在右侧选中动态面板“ad”;选择状态中选择“next”,以实现自动切换下一个面板状态;勾选“向后循环”,可以实现循环动作;勾选“循环间隔”,并将轮播时间修改为“3000ms”。即每隔2秒,会自动切换为后一个广告;

3f1e17fd8c016cbc17646ee0a8864d00.png

d4a5c10830b776cf7bbd56915d715b45.png

eb3500f8e515aad4adcb224d1f9e498f.png

三 手动切换左右状态

需实现效果:鼠标移入广告图片区域时,停止自动轮播,停在当前的广告图片上;同时在左右两侧显示按钮,点击左侧按钮,可以手动切换上一个广告图片,点击右侧按钮,可以手动切换下一个广告图片;鼠标移出广告区域,恢复自动轮播效果;操作步骤:1,在动态面板“ad”上,放置两个图片,分别命名为“left”“right”,用以控制广告切换的操作;

20d9f8e89aeae24fbcbff22268fa63c5.png

2,设置图片“left”“right”默认为“隐藏状态;

d075a593671d09aa1bf5ded6a32319cb.png

3,需要实现,点击“left”图片时,广告切换为上一个广告:选中“left”,双击添加事件“鼠标单击时”;

ba57da3ab122d4526caf2bca5c1a12bd.png 

4,添加“设置面板状态”,选择“ad”,设置状态为“previous”,勾选“向前循环”;点击确认,完成;

6509adb2b049ba3cfe73207912dfe561.png

5,类似的操作在“right”上再作一遍,状态设置为“next”,并勾选“向后循环”;

cb2abf65a1f56052059f9794f716dde3.png 

6,要实现鼠标移入广告区域时,暂停自动轮播,同时将隐藏的两个控制按钮“left”“right”显示出来;选中动态面板“ad”,选择事件“鼠标移入时”(默认的交互事件中没有,需要点击“更多事件”

c5d480edcd3c97ea9fa32bc31fd97104.png

f441260b27a92f029dd109a77512c578.png

7,添加“设置面板状态”,选择“ad”,将状态设置为“停止循环”

ea4335624371b64063b0d32dd3007a04.png

8,添加“显示”,选择“left”“right”,设置为“显示”

fb479e7da7455eeab038b25dac3287df.png

9,要实现鼠标移出广告区域时,恢复自动轮播,同时隐藏的两个控制按钮“left”“right”;高能预警,此处有坑,按常规做法,我们会按下面步骤操作:选中动态面板“ad”,选择事件“鼠标移出时”(默认的交互事件中没有,需要点击“更多事件”添加“设置面板状态”,选中“ad”,重新设置自动轮播的效果,即将状态设为“next”,勾选“向后循环”,勾选循环间隔,时间设为“3000ms”;添加“隐藏”,选中“left”“right”,勾选“隐藏”;

24aa4433663ccacead669856f6e65753.png

1d0f8d702f8e02dda6864e4b8ee82240.png

看似效果已经实现,而实际预览的时候,却发现鼠标移入的时候,两个小图片正常显示了,广告也不自动切换了,可是当我们点击“left”或“right”的时候,广告页却没按设想的一样切换为新的广告图片;10,细心的朋友可能发现了,当我们点上“left”或“right”的时候,小图标居然是看不见的;没错,其实根本原因正是出在了这边;当我们移入鼠标时,“left”显示,可是当你想要去点击“left”的时候,势必会将鼠标移入“left”,由于“left”在动态面板“ad”的上方,覆盖了“ad”,移上“left”的时候,就是移出“ad”的时候,即触发了之前的“移出鼠标时”的交互,将“left”变为了隐藏;然后程序进入了死循环;要解决这个问题,我们只需要在“鼠标移出时”的交互中增加一个小小的条件即可;如上所说,既然移上“left”或者“right”或陷入死循环,那么我们在执行“鼠标移出时”的操作时,排除掉这个情况就可以了;对“鼠标移出时”的交互添加条件,对指针位置进行判断,当指针同时满足“未接触”“left”和“未接触”“right”时,执行移出交互,即可实现我们的目的;

5ca987d255ba6a9a34252400fd4b0f86.png

c86ec169e5206ee9f45b1a3b57add3d3.png

2b306a7c08770d93f47e1e6896080852.png

ca36ff1f371cdafdc4bf89a175854511.png

四 手动切换任意状态

需实现效果:鼠标移入广告图片区域时,停止自动轮播,停在当前的广告图片上;在下方显示控制按钮,点击对应图标,可以直接切换显示对应的广告图片;鼠标移出广告区域,恢复自动轮播效果操作步骤:1,放置一个图标,作为广告1的控制按钮,命名为ad1;

bb9be7dc7294928ff5cfaf08f780703e.png 

2,设置“ad1”的“选中”状态,单击“选中”,然后选择“填充颜色”,这里我们就选择蓝色;这样我们的“ad1”就有了2个状态,灰色的非选中状态,蓝色的选中状态;后面我们会将其与广告页的显示图片进行对应,当广告显示广告1的时候,我们的图片“ad1”显示蓝色,如果不是广告1,则显示灰色;点击确认;

74082cfa187243ec5f896b27e34c21e7.png

11ae6bf7afdd75b5fb57eca4e06ceb1f.png  

3,给图片ad1设置交互,当我们点击“ad1”的时候,需要广告也对应显示第一个图片;双击“ad1”属性的“鼠标单击时”,添加“设置面板状态”,将“ad”的状态选择为“ad1”,点击确认;

e50d87b2ddbeba6106e51a4f40ef73ec.png 

4,复制3个图片“ad1”,分别命名为“ad2”“ad3”“ad4”,重复上述的2/3两步,分别对应各自的动态面板的状态;

167c2979cb51e51cb77746512ceeb30e.png

5,需要将动态面板的4个状态和4个图片空间的选中的状态分别对应;当显示第一个广告的时候,图片“ad1”为选中状态,其他为未选中;当显示第二个广告的时候,图片“ad2”为选中状态,其他为未选中;选中动态面板“ad”,添加交换“改变状态时”

bda28b60ab5aa926178662cde34b36f7.png

6,“添加条件”当动态面板状态为“ad1”时,点确认

d235b45f48d9106eda66f513263f829a.png

7,选择“选中”,设置“ad1”状态为“true”

ecb6cfb39416699f76bba5d9ba51ad0b.png

8,选择“取消选中”,设置“ad2”“ad3”“ad4”状态为“false”;点击确认,我们就完成了第一个广告的对应交互;

ba43fa88212e8a72f35902ce14592e4d.png

9,重复步骤5-8,分别设置第二/第三/第四个广告的页面交互;

0c0e4658d2876373313f3e47b0ddfca2.png

10,此时我们点击预览,广告页下方的图片状态已各自对应,不过还有一个小瑕疵,这个效果都是在动态面板状态改变的时候才起作用;我们刚进页面的时候,没有触发动态面板改变状态的交互,4个小图片都是非选中状态;这边我们只需要将图片“ad1”的默认状态设为“选中”即可;最后将4个小图片放置在广告页下方,完整版的广告轮播功能就大功告成了。

5cb640375fc53919d3a182649be3e7e9.png

原型下载链接:https://pan.baidu.com/s/1JtejTgScRbXTWY_36nVfOQ

提取码:xz0v




推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 本文详细介绍了 BERT 模型中 Transformer 的 Attention 机制,包括其原理、实现代码以及在自然语言处理中的应用。通过结合多个权威资源,帮助读者全面理解这一关键技术。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文介绍如何使用 Python 将一个字符串按照指定的行和元素分隔符进行两次拆分,最终将字符串转换为矩阵形式。通过两种不同的方法实现这一功能:一种是使用循环与 split() 方法,另一种是利用列表推导式。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
author-avatar
王聪明2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有