前面一篇文章实现了使用ViewPager实现高仿launcher拖动效果 ,后来很多朋友问能不能实现左右循环滑动效果和引导页面。今天实现了左右滑动,至于在最后一页滑动跳转,这个也做了但是效果不是太好,也希望有实现的朋友能够分享下。在最后一页添加一张图片单击跳转,这个认为很简单大家自己添加个图片,点击后跳转就OK。

这篇是在实现了使用ViewPager实现高仿launcher拖动效果的基础上做了一些小的修改,可以参照前面的。废话不多说了,直接上代码吧!

首先看一些layout下的xml

复制代码 代码如下:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/viewPager"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical" >

android:id="@+id/viewGroup"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_marginBottom="30dp"

android:gravity="center_horizontal"

android:orientation="horizontal" >

和前面一页使用viewpager。使用ViewPager首先需要引入android-support-v4.jar这个jar包。自己不要忘记加。

下面是核心代码:

复制代码 代码如下:

package cn.com.karl.viewpager;

import java.util.ArrayList;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.os.Parcelable;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.view.ViewGroup.LayoutParams;

import android.view.Window;

import android.widget.ImageView;

public class MainActivity extends Activity {

ViewPager viewPager;

ArrayList list;

ViewGroup main, group;

ImageView imageView;

ImageView[] imageViews;

private static int c_id = 0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

LayoutInflater inflater = getLayoutInflater();

list = new ArrayList();

list.add(inflater.inflate(R.layout.item1, null));

list.add(inflater.inflate(R.layout.item2, null));

list.add(inflater.inflate(R.layout.item3, null));

list.add(inflater.inflate(R.layout.item4, null));

list.add(inflater.inflate(R.layout.item5, null));

imageViews = new ImageView[list.size()];

ViewGroup main = (ViewGroup) inflater.inflate(R.layout.main, null);

ViewGroup group = (ViewGroup) main.findViewById(R.id.viewGroup);

viewPager = (ViewPager) main.findViewById(R.id.viewPager);

for (int i = 0; i < list.size(); i++) {

imageView = new ImageView(MainActivity.this);

imageView.setLayoutParams(new LayoutParams(12,12));

//imageView.setPadding(10, 0, 10, 0);

imageViews[i] = imageView;

if (i == 0) {

imageViews[i].setBackgroundResource(R.drawable.guide_dot_white);

} else {

imageViews[i].setBackgroundResource(R.drawable.guide_dot_black);

}

group.addView(imageView);

}

setContentView(main);

viewPager.setAdapter(new MyAdapter());

viewPager.setOnPageChangeListener(new MyListener());

viewPager.setCurrentItem(300);

}

class MyAdapter extends PagerAdapter {

@Override

public int getCount() {

return Integer.MAX_VALUE;

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == arg1;

}

@Override

public int getItemPosition(Object object) {

// TODO Auto-generated method stub

return super.getItemPosition(object);

}

@Override

public void destroyItem(View arg0, int arg1, Object arg2) {

// TODO Auto-generated method stub

//((ViewPager) arg0).removeView(list.get(arg1));

}

@Override

public Object instantiateItem(View arg0, int arg1) {

// TODO Auto-generated method stub

try{

((ViewPager) arg0).addView(list.get(arg1%list.size()),0);

}catch (Exception e) {

// TODO: handle exception

}

return list.get(arg1%list.size());

}

@Override

public void restoreState(Parcelable arg0, ClassLoader arg1) {

// TODO Auto-generated method stub

}

@Override

public Parcelable saveState() {

// TODO Auto-generated method stub

return null;

}

@Override

public void startUpdate(View arg0) {

// TODO Auto-generated method stub

}

@Override

public void finishUpdate(View arg0) {

// TODO Auto-generated method stub

}

}

class MyListener implements OnPageChangeListener {

//当滑动状态改变时调用

@Override

public void onPageScrollStateChanged(int arg0) {

// TODO Auto-generated method stub

//arg0=arg0%list.size();

}

//当当前页面被滑动时调用

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

// TODO Auto-generated method stub

}

//当新的页面被选中时调用

@Override

public void onPageSelected(int arg0) {

if(arg0>2){

arg0=arg0%list.size();

}

c_id = arg0;

for (int i = 0; i < imageViews.length; i++) {

imageViews[arg0]

.setBackgroundResource(R.drawable.guide_dot_white);

if (arg0 != i) {

imageViews[i]

.setBackgroundResource(R.drawable.guide_dot_black);

}

}

Log.e("-------------", "当前是第"+c_id+"页");

}

}

}

代码跟上一篇差不多,大家自己研究吧!下面看下效果:

忘记了,这种效果不太好用图片演示,大家自己演示吧!滑动到最后一张,再滑动就是进入了第一页。下面看下我logcat下的打印:

这里默认是从第0页开始的。

本文标题: 使用ViewPager实现左右循环滑动及滑动跳转

本文地址: http://www.cppcns.com/ruanjian/android/90990.html

android 左滑跳转_使用ViewPager实现左右循环滑动及滑动跳转相关推荐

  1. android 左滑右滑,Android仿滴答清单左滑右滑效果

    直接上效果图 记录仿写滴答清单App 过程中的技术点 本文分为以下章节,读者可按需阅读: 1.自定义RecycleItemTouchHelper 2.实现滴答清单左滑右滑效果 3.RecycleVie ...

  2. android 左滑按钮,android开发类似微信列表向左滑动按钮操作

    话不多说,直接上代码,有详细的注释的. layout布局中: 主要是跟大家说一下listview怎么写: android:id="@+id/pull_refresh_viewId" ...

  3. mysql slave lock 跳过_处理 MySQL 因为 SLAVE 崩溃导致需要手动跳过 GTID 的问题 | 关于 GTID...

    今天发生了与之前某篇博客相似的问题,有同学在不同步的 binlog 库中使用语句 database.table 命令对表进行 drop 导致 master 丢弃该表但是从库并未能同步到该操作.并且后续 ...

  4. python跳台阶_递推典型算法:猴子爬山,跳台阶,爬楼梯(牛客网)、魔法深渊(快手)----Python、Java...

    递推算法的基本思想是把一个复杂的.庞大的计算过程转化为简单过程的多次重复,其首要问题是得到相邻的数据项之间的关系,即递推关系.以猴子爬山为例. 1.问题的提出 一个顽猴在一座有30级太假的小山上爬山活 ...

  5. java filter 跳过_如何在java中的过滤器链中跳过一个过滤器

    您可以在请求中设置属性,并在第二个过滤器中进行检查. public class FirstFilter implements Filter { //... public void doFilter(S ...

  6. autojs自动滑屏脚本_创造与魔法脚本软件autojs上下滑动

    下面以一个具体实例来说明如何播放AVI文件:假设用户当前目录下有名字为DEMO.AVI的视频音频文件,则利用VisulBasic播放该影片需要经过如下步骤: (1)在VisualBasic的窗体中加入 ...

  7. Android直播软件搭建左滑右滑清屏控件

    Android直播软件搭建左滑右滑清屏控件 最近在迭代直播软件搭建功能时,项目中之前的左滑清屏是用ViewPager实现的.这次迭代遇到一个布局层次导致的点击失效问题,继续用ViewPager的话改动 ...

  8. Android手势滑动(左滑和右滑)

    最近想实现Android左滑弹出菜单框,右滑消失菜单这个个功能.了解了一下Android 的滑动事件,必须是在view组件或者Activity上实现,同时必须实现OnTouchListener, On ...

  9. 顺畅操作:教你微信小程序左滑实现更多功能

    前言 当你在使用微信小程序时,是否曾经遇到过左滑操作是如此的顺畅,让你想起了 iPhone 上的滑动操作?左滑操作在微信小程序中已经成为了一个常见的交互方式,它能够帮助用户快速地执行某些操作,提高了用 ...

  10. 微信小程序---左滑显示删除 movable-area

    movable-area 首先页面排版: <view class="act_box"><view class="product_item" w ...

最新文章

  1. 今天是2013年06月21日,博客之路开始了!
  2. laravel 发送带附件的邮件
  3. python中文对齐_Python中英文对齐终极解决方案
  4. 8口poe交换机产品介绍
  5. 基于Cairngorm的Silverlight开发 - part3
  6. SharePoint 入门介绍
  7. mysql全文搜索实现模糊查询_mysql使用全文索引实现大字段的模糊查询
  8. CSDN博客排名20000以后的用户怎么查询具体排名
  9. 用tensorflow实现矩阵分解
  10. Android MeasureSpec的理解和源码的解析
  11. STM32F103—有关SIM900A模块的使用
  12. mt管理器主题修改教程_QQ主题+微博主题
  13. Demo示例——Bundle打包和加载
  14. python和excel数据分析有什么区别_用Excel、SQL、Python做数据分析有何不同?
  15. 计算机程序员笔试题,历年计算机软考程序员笔试真题及答案
  16. 戴尔win10开机后,在桌面点右键一直转圈,但任务栏又能正常点击
  17. python培训免费视频
  18. A3Mall开源商城系统
  19. Firefox F12 + Python 3.6 下载B站视频
  20. 点计算机显示服务器运行失败,win7电脑总是跳出Explorer.exe服务器运行失败的窗口怎么办?...

热门文章

  1. Atitit 常用微服务实现 目录 1. 健康检测 max_fails与fail_timeout参 数 1 1.1. spring cloud dubbo实现 2 1.2. 、nginx多个tomc
  2. Atitit 音频资源管理法 与教程 音频资源分类法 卡拉ok功能 人声消除给你教程 Atitit 音频功能常见工具与类库 Atitit 调整播放速率 Atitit、 ffmpeg录音 atit
  3. Atitit 人员评价能力模型 目录 1.1. 深度、大局观、 1 1.2. 影响力, 影响力 分享 1 1.3. 业务洞察力 价值识别 1 1.4. 视野 战略和人才 专业 1 1.5.
  4. Atitit 风控之道 attilax著 风险控制 1. 融资风险控制 3 1.1. 风险控制基本知识 3 2. 第8 章 项目风险的分类管理 156 4 2.1. 8.1 项目风险分类 156 4
  5. Atitit 常用比较复杂的图像滤镜 attilax大总结
  6. Atitit.研发团队与公司绩效管理的原理概论的attilax总结
  7. HD Tune Pro: WDC WD1600AAJS-00B8D 160g inMyRitMachi
  8. org.xml.sax.SAXParseException: 缺少文件根组件。
  9. 中金:基金投顾试点扩容,买方时代已至
  10. Redis: 配置文件示例