使用ViewPager实现广告滑动效果
效果图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSk1DNjAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSk1DNjAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSk1DNjAx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
功能描写叙述:
1、拖动能够切换view
2、点击dot能够跳转到对应view
3、每隔三秒自己主动切换view
实现:
1、先写布局main.xml文件,定义一个存放图片的ViewPager,和存放dot的LinearLayout
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="150dp">
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/viewGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="405px"
android:orientation="horizontal" >
</LinearLayout>
2、主要实现代码:
a、初始化view视图,设置viewpager的适配器
private void initViewPager() {
// TODO Auto-generated method stub
items = new ArrayList<View>();
for(int i=0; i<4; i++){
image = new ImageView(this);
image.setBackgroundResource(ads[i]);
items.add(image);
}
viewpager = (ViewPager)findViewById(R.id.viewpager);
viewpager.setAdapter(adapter);
viewpager.setOnPageChangeListener(this);
}
b、初始化dot视图
private void initDot() {
// TODO Auto-generated method stub
viewGroup = (LinearLayout)findViewById(R.id.viewGroup);
dots = new ImageView[items.size()];
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(40, 40);
layoutParams.setMargins(4, 3, 4, 3);
for(int i=0 ; i<items.size(); i++){
dot = new ImageView(this);
dot.setLayoutParams(layoutParams);
dots[i] = dot;
dots[i].setTag(i);
dots[i].setOnClickListener(onClick);
if (i == 0) {
dots[i]
.setBackgroundResource(R.drawable.dotc);
} else {
dots[i]
.setBackgroundResource(R.drawable.dotn);
}
viewGroup.addView(dots[i]);
}
}
c、实现dot点击响应功能
OnClickListener onClick = new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int position = (Integer)v.getTag();
setCurView(position);
setCurDot(position);
}
};
d、自己主动切换视图
private void atomicOption() {
//获取当前的值,并自增
atomicInteger.incrementAndGet();
if (atomicInteger.get() > items.size() - 1) {
atomicInteger.getAndAdd(-4);
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
}
源代码下载路径:http://download.csdn.net/detail/jmc601/7275991
使用ViewPager实现广告滑动效果的更多相关文章
- 使用ViewPager实现屏幕滑动效果
oncreate中设置viewPager viewPager.setPageTransformer(true,new DepthPageTransformer());//设置页面过滤动画效果 page ...
- android SlidingTabLayout实现ViewPager页卡滑动效果
先来张效果图(能够滑动切换页卡) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGVuZ2t2/font/5a6L5L2T/fontsize/400/fi ...
- 兔子--Fragment与ViewPager要切换滑动效果
效果图: 文件夹结构: 代码分析: MainActivity.java package com.example.myfragment; /** * @author Arthur Lee * @time ...
- 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)
1.TabLayout介绍 TabLayout提供了一个水平的布局用来展示Tabs,很多应用都有这样的设计,典型的有网易新闻,简书,知乎等.TabLayout就可以很好的完成这一职责,首先TabLay ...
- 转:Android ViewPager多页面滑动切换以及动画效果
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...
- 【Android 界面效果27】利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果
本文主要介绍如何利用ViewPager.Fragment.PagerTabStrip实现多页面滑动效果.即google play首页.新浪微博消息(at.评论.私信.广播)页面的效果.ViewPage ...
- Android ViewPager多页面滑动切换以及动画效果
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...
- Android ViewPager实现软件的第一次加载的滑动效果
public class MainActivity extends Activity { private ViewPager viewPager; private List<View> V ...
- Android——ViewPager多页面滑动切换以及动画效果
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...
随机推荐
- UpdateParameterUtils
/** * */ package com.neptune.business.api.job; import java.text.SimpleDateFormat; import java.uti ...
- 英语发音规则---D字母
英语发音规则---D字母 一.总结 一句话总结: 1.D发[d]音? doctor ['dɒktə] n. 医生:博士 bread [bred] n. 面包:生计 hand [hænd] n. 手,手 ...
- BZOJ 4516 后缀数组+ST+set
写了一半 没了啊啊啊 重新写的 思路: 先不考虑后缀自动机 (我不会啊) 那这道题只能用后缀数组了 先把原串倒一下 后缀->前缀 相当于每回在前面加了一个字母 求不同的子串个数 首先 正常的求子 ...
- BZOJ 1818 线段树+扫描线
思路: 可以把题目转化成 给你一些沿坐标轴方向的线段 让你求交点个数 然后就线段树+扫描线 搞一搞 (线段不包含断点 最后+n 这种方式 比线段包含断点+各种特判要好写得多) //By SiriusR ...
- C++之易混淆知识点四---虚函数与虚继承
C++面向对象中,虚函数与虚继承是两个完全不同的概念. 一.虚函数 C++程序中只要类中含有虚拟函数,编译程序都会为此类生成一个对应的虚拟函数跳转表(vtbl),该虚拟函数跳转表是一个又若干个虚拟函数 ...
- JS实现掷骰子
JS实现掷骰子 实现方法: 方法一:通过background-position.background-image.backg-repeat三个属性以及jquery animate()方法改变背景骰子图 ...
- [ OS ][ Linux ] [ SA ] root 帳號名稱修改
1. 背景: 由於 Linux 中預設最高權限的使用者一律為 root, 存在安全性的疑慮. 所以比較安全的作法要將 root 帳號改名為其他名稱,讓要入侵的人需要同時破解出帳號和密碼才可以進入主機, ...
- here.less
<html><head><title>Test Less</title><link rel="stylesheet/less" ...
- vim常用的基本命令
vim 常用的基本命令1. w [文件名] 相当于另存为2. r [文件名] 将[文件名]的内容加到光标行后面3. n1,n2 w[filename] 将n1到n2的内容保存为[file ...
- Maven编译、打war包
Eclipse环境,每次alt+F5刷新Maven项目时,总是会把项目的Java依赖刷新成1.5. 解决办法:在pom中加入如下片段 <plugin> <groupId>org ...