ViewPage实现幻灯广告墙

ViewPage实现幻灯广告墙

功能简介

  1. 类似幻灯片功能
  2. 自动切换图片
  3. 触摸停止切换图片
  4. 自带标题功能和切换圆点

核心功能实现方法

1. 布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" >

 <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" >

 <android.support.v4.view.ViewPager android:id="@+id/vp_text" android:layout_width="match_parent" android:layout_height="170dp" />

 <!-- 小圆点的布局文件 -->

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="#a000" android:orientation="vertical">

 <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="标题" android:textColor="#fff" android:textSize="18sp" />

 <LinearLayout  android:id="@+id/ll_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal"></LinearLayout>

 </LinearLayout>

 </FrameLayout>

</LinearLayout>
2. ViewPage自定义适配器
/*** ViewPage适配器而已*/ class myAdatper extends PagerAdapter {

 @Override public int getCount() { return count;}

 /*** 确定是否展示和反对的是否是同一个对象*/ @Override public boolean isViewFromObject(View view, Object object) { return view == object;}

 /*** 添加机制。*/ @Override public Object instantiateItem(ViewGroup container, int position) {ImageView view = new ImageView(getApplicationContext());view.setImageResource(mImage[position % mImage.length]); // view.setBackgroundResource(resid) //填充父控件container.addView(view); return view;}

 /*** 独特的销毁机制 , 控制内存方式, 用语默认只加载3个页面*/ @Override public void destroyItem(ViewGroup container, int position, Object object) { // 移除容器当中的Viewcontainer.removeView((ImageView) object);}}

3. helder消息,实现自动切换功能

这里原理是我们可以通过handler.sendEmptyMessageDelayed(0, 2000)发送延时消息,通过handleMessage接受后,再次发送,类似递归功能。触摸停止使用handler.removeCallbacksAndMessages(null)移除所有消息队列里面的消息实现停止轮播

 Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { // 自动跟换轮播图片 int currentItem = vpteach.getCurrentItem();currentItem++;

vpteach.setCurrentItem(currentItem);handler.sendEmptyMessageDelayed(0, 2000);};};
4. 触摸取消切换
//设置 触摸停止滚动vpteach.setOnTouchListener(new OnTouchListener(){

 @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: //移除所有消息handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_UP:handler.sendEmptyMessageDelayed(0, 2000); break; default: break;}

 return false;}});
5. 文字和圆点跟踪变换

这里主要是使用监听ViewPagesetOnPageChangeListener事件,来改变TextView文本当中文字

 // 滑动更新标题。 。vpteach.setOnPageChangeListener(new OnPageChangeListener(){ // 某一页页被选中时 @Override public void onPageSelected(int position) { // 滑动设置简介。 int index = position % mImageDes.length;tvTitle.setText(mImageDes[index]);ll_contaier.getChildAt(index).setEnabled(true);

ll_contaier.getChildAt(prePosation).setEnabled(false);prePosation = index;

}

 // 滑动是调用 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

 // 滑动状态改变时。 @Override public void onPageScrollStateChanged(int state) {

}});

 6.自己绘制圆点

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"  android:shape="ring"> <size android:width="5dp" android:height="5dp"/> <!-- 圆点原色 --> <solid android:color="#CD6090" /></shape>

总结

Handler , ViewPage, shape,自定义适配器的使用。
以后自己复习中多注意他们之间的联系可以实现的功能。

效果

时间: 2024-10-12 23:25:21

ViewPage实现幻灯广告墙的相关文章

Android应用盈利广告平台的嵌入方法详解

一.如何学习Android   android开发(这里不提platform和底层驱动)你需要对Java有个良好的基础,一般我们用Eclipse作为开发工具.对于过多的具体知识详细介绍我这里不展开,我只说我个人的学习方法和本人以为的好的步骤.   1.搭建环境:包括对Java和Eclipse及模拟器(有真机再好不过)的熟悉,对于android的tools和adb命令可以放到后面熟悉了解.   2.从helloworld开始:了解一个基本的android应用代码包含哪些,各部分做什么用.(这里只要

如何:在Android应用中加入广告方法步骤!

我打算在第一个图拍照按钮下边的设置按钮加入弹出菜单(更多应用和关于2个选项),在更多应用菜单中展示广告墙,在第二个图界面的上方展示一个广告 条,推送广告因为不占用广告界面,所以不用考虑放在哪里.(当然最后发布的时候我会根据不同的发布市场来选择其中的1-2种广告形式,这里只为演示用,太 多的广告会让用户反感) 广告平台: 广告墙和推送广告我使用万普,广告条我使用芒果的聚合,暂时打算用多盟.有米这2个平台.(之所以用多个平台是可以根据情况做实时的在线比例分配,这样可以有更多的选择余地,当然也不是越多

如何在Android应用中加入广告

前面在论坛里发了<Android学习及如何利用android来赚钱>帖子后,收到不少android开发者的回复,加上整理到博客里的回复,很多人问到如何在应用中加入广告,今天刚好有一个新的小应用要加广告,一起算写一篇总结. 先介绍一下我准备好的东西: 应用: <Popstar  2015>,一个简单大家熟悉的小游戏.美化了下界面,优化了下操作流程,大家可以从https://itunes.apple.com/us/app/xiao-chu-xing-xing-zhong-wen/id9

【荣耀归来】2015年度AppCan TOP15创业团队揭晓

五年积淀,牵手前行! 技术到生态的跨越,创新到商业的升级! 11月27日,2015 AppCan 移动云大会在北京圆满落幕,这是一场以移动技术为支撑的移动互联网双创盛宴,在整个会议中,特别安排了 AppCan 创业团队的颁奖和展示环节.来自全国各地的15位创业团队代表登上颁奖台,享受全场嘉宾的祝贺和赞誉,荣耀与自豪,希望与责任一起涌上心头,总结成一句话:荣耀归来,新征程开启! 2010年,AppCan在北京中关村创立,在国内最先提出混合开发模式并潜心研发.2012年,AppCan 1.0 上线,

Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源代码

在android学习中,动作交互是软件中重要的一部分.当中的Scroller就是提供了拖动效果的类,在网上.比方说一些Launcher实现滑屏都能够通过这个类去实现.以下要说的就是上次Scroller类学习的后的实践了. 假设你还不了解Scroller类,那请先点击:Android 界面滑动实现---Scroller类 从源代码和开发文档中学习(让你的布局动起来) 了解之后再阅读下面内容.你会发现原来实现起来非常easy. 之前说到过.在广泛使用的側边滑动导航开源库 --SlidingLayer

哆啦A梦消除连连看游戏源码项目完整版

欢迎大家光临我的个人网店:http://shop.662p.com/shop/view8.html 哆啦A梦连连看游戏源码完整版,游戏源码已经通过本人在真机上测试非常流畅好玩,本代码主本人编写,没版权问题,另有其他少量小游戏和应用源码稍后会陆续上线!哆啦A梦连连看包括了2种游戏模式和60关卡,并可以通过修改配置文件很方便的实现自行增加新关卡.采用andengine游戏引擎开发,内置了趣米广告和用户统计flurry支持. 0.该游戏源码最好是在真机上测试. 1.本源码编码规范,设计清晰,可做为游戏

云和端之我见

顾名思义...云和端就是我们现在很流行讲的云计算.移动开发.大数据处理等.. 我们做IT的一般都要先了解这个架构.. 而对于架构这个东西,有可能是你要实现一些特定功能的软件架构,也可能是你想要实现特定系统功能的架构. 而我讨论的是云和端的架构. 首先,云可以理解是我们的服务器系统.或者b/s架构的server端,或者是提供后面处理的一些东西.我们可以在这种特定的服务器上加上你的一些软件环境,(硬件环境不讨论). 比如mysql数据库,KVM虚拟服务器等.还有磁盘阵列.然后我们可以开发相应的api

Android版哆啦A梦连连看游戏源码完整版

本代码主本人编写,没版权问题,另有其他少量小游戏和应用源码稍后会陆续上线!哆啦A梦连连看包括了2种游戏模式和60关卡,并可以通过修改配置文件很方便的实现自行增加新关卡.采用andengine游戏引擎开发,内置了趣米广告和用户统计flurry支持. 1.  本源码编码规范,设计清晰,可做为游戏开发入门学习参考. 2.  可以通过轻易的通过修改包名和游戏资源,开发出多种连连看游戏并发布.  除趣米广告外,可以替换为其他广告平台,支持插屏广告,进入/退出广告和广告墙等多种广告形式. 此游戏已发布在木蚂

某奇门遁甲的相关分析

翻到以前的文章,无事都整过来,方便以后翻阅. 偶遇一android应用软件,奇门遁甲,一直以来,对于中国的传统文化一直很敬畏,很憧憬,很向往,打开这个软件一看,竟然需要注册!!还得花人民币!!还有广告墙!! 一时间,急火攻心,然后打开我的工具,准备破解之旅~ 首先对xxx.apk反编译,查看目录 发现有这个广告包,经过多年的经验,这个是有米平台的广告包,应该广告墙也是他家的,好吧,既然知道这个,那就好办多了,以前也研究过有米的sdk,可以在自己写的app中使用广告,所以逆向起来,就非常简单了.