android viewpager 图片翻页例子

使用ViewPager这个类可以轻松实现多个页面的滑动功能

viewpager默认在工具界面上是找不到的,需求添加android-support-v4.jar包;

如果没有找到,需要打开Android SDK Manager在Extras中进行下载,最后记得引入工程中并build path。

(不过,我把代码直接COPY到.XML好像就会自动添加了)

例子说明:item01..item08是要翻页的图片,page_indicator_focused,page_indicator_unfocused是显示在底部的点点图片,要自己添加到res\drawable-hdpi\中;

.XML

代码下载:http://pan.baidu.com/s/1mgA7MBY

 1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="fill_parent"
 3     android:layout_height="fill_parent"
 4     android:orientation="vertical" >
 5
 6     <android.support.v4.view.ViewPager
 7         android:id="@+id/viewPager"
 8         android:layout_width="fill_parent"
 9         android:layout_height="wrap_content" />
10
11     <RelativeLayout
12         android:layout_width="fill_parent"
13         android:layout_height="wrap_content"
14         android:orientation="vertical" >
15
16         <LinearLayout
17             android:id="@+id/viewGroup"
18             android:layout_width="fill_parent"
19             android:layout_height="wrap_content"
20             android:layout_alignParentBottom="true"
21             android:layout_marginBottom="30dp"
22             android:gravity="center_horizontal"
23             android:orientation="horizontal" >
24         </LinearLayout>
25     </RelativeLayout>
26
27 </FrameLayout>

.JAVA

  1 package com.example.testa;
  2
  3 import android.support.v4.view.PagerAdapter;
  4 import android.support.v4.view.ViewPager;
  5 import android.support.v4.view.ViewPager.OnPageChangeListener;
  6 import android.app.Activity;
  7 import android.os.Bundle;
  8 import android.view.View;
  9 import android.view.ViewGroup;
 10 import android.view.ViewGroup.LayoutParams;
 11 import android.widget.ImageView;
 12 import android.widget.LinearLayout;
 13
 14 public class MainActivity extends Activity implements OnPageChangeListener {
 15
 16     /**
 17      * ViewPager
 18      */
 19     private ViewPager viewPager;
 20
 21     /**
 22      * 装点点的ImageView数组
 23      */
 24     private ImageView[] tips;
 25
 26     /**
 27      * 装ImageView数组
 28      */
 29     private ImageView[] mImageViews;
 30
 31     /**
 32      * 图片资源id
 33      */
 34     private int[] imgIdArray;
 35
 36     @Override
 37     protected void onCreate(Bundle savedInstanceState) {
 38         super.onCreate(savedInstanceState);
 39         setContentView(R.layout.activity_main);
 40         ViewGroup group = (ViewGroup) findViewById(R.id.viewGroup);
 41         viewPager = (ViewPager) findViewById(R.id.viewPager);
 42
 43         // 载入图片资源ID
 44         imgIdArray = new int[] { R.drawable.item01, R.drawable.item02,
 45                 R.drawable.item03, R.drawable.item04, R.drawable.item05,
 46                 R.drawable.item06, R.drawable.item07, R.drawable.item08 };
 47
 48         // 将点点加入到ViewGroup中
 49         tips = new ImageView[imgIdArray.length];
 50         for (int i = 0; i < tips.length; i++) {
 51             ImageView imageView = new ImageView(this);
 52             imageView.setLayoutParams(new LayoutParams(10, 10));
 53             tips[i] = imageView;
 54             if (i == 0) {
 55                 tips[i].setBackgroundResource(R.drawable.page_indicator_focused);
 56             } else {
 57                 tips[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
 58             }
 59
 60             LinearLayout.LayoutParams layoutParams

IT经典笑语录:有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他说,“你知道不知道这个东西会危害你的健康?我是说,你有没有注意到香烟盒上的那个警告(Warning)?” 小伙子说,“没事儿,我是一个程序员”。 那妇女说,“这又怎样?” 程序员说,“我们从来不关心Warning,只关心Error”

 new LinearLayout.LayoutParams(
 61                     new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,
 62                             LayoutParams.WRAP_CONTENT));
 63             layoutParams.leftMargin = 5;
 64             layoutParams.rightMargin = 5;
 65             group.addView(imageView, layoutParams);
 66         }
 67
 68         // 将图片装载到数组中
 69         mImageViews = new ImageView[imgIdArray.length];
 70         for (int i = 0; i < mImageViews.length; i++) {
 71             ImageView imageView = new ImageView(this);
 72             mImageViews[i] = imageView;
 73             imageView.setBackgroundResource(imgIdArray[i]);
 74         }
 75
 76         // 设置Adapter
 77         viewPager.setAdapter(new MyAdapter());
 78         // 设置监听,主要是设置点点的背景
 79         viewPager.setOnPageChangeListener(this);
 80         // 设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动
 81         viewPager.setCurrentItem((mImageViews.length) * 100);
 82
 83     }
 84
 85     /**
 86      *
 87      * @author xiaanming
 88      *
 89      */
 90     public class MyAdapter extends PagerAdapter {
 91
 92         @Override
 93         public int getCount() {
 94             return Integer.MAX_VALUE;
 95         }
 96
 97         @Override
 98         public boolean isViewFromObject(View arg0, Object arg1) {
 99             return arg0 == arg1;
100         }
101
102         @Override
103         public void destroyItem(View container, int position, Object object) {
104         }
105
106         /**
107          * 载入图片进去,用当前的position 除以 图片数组长度取余数是关键
108          */
109         @Override
110         public Object instantiateItem(View container, int position) {
111              try {
112                     ((ViewPager)container).addView(mImageViews[position % mImageViews.length], 0);
113                 }catch(Exception e){
114                     //handler something
115                 }
116                 return mImageViews[position % mImageViews.length];
117
118         }
119
120     }
121
122     @Override
123     public void onPageScrollStateChanged(int arg0) {
124
125     }
126
127     @Override
128     public void onPageScrolled(int arg0, float arg1, int arg2) {
129
130     }
131
132     @Override
133     public void onPageSelected(int arg0) {
134         setImageBackground(arg0 % mImageViews.length);
135     }
136
137     /**
138      * 设置选中的tip的背景
139      *
140      * @param selectItems
141      */
142     private void setImageBackground(int selectItems) {
143         for (int i = 0; i < tips.length; i++) {
144             if (i == selectItems) {
145                 tips[i].setBackgroundResource(R.drawable.page_indicator_focused);
146             } else {
147                 tips[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
148             }
149         }
150     }
151
152 }转自http://www.codes51.com/article/detail_113019.html
时间: 2024-08-26 20:14:29

android viewpager 图片翻页例子的相关文章

ViewPager实现翻页步骤

之前觉得滑动翻页的效果挺炫的,目前初学android,所以自己在项目中尝试实现了这个效果.数据是动态的.实现效果主要有几个步骤: 1.创建两个布局文件,一个布局文件定义viewPager组件,如  <android.support.v4.view.ViewPager         android:id="@+id/vp_articles"        android:layout_width="match_parent"        android:la

【转】android 欢迎界面翻页成效,仿微信第一次登陆介绍翻页界面

android 欢迎界面翻页效果,仿微信第一次登陆介绍翻页界面 本实例做的相对比较简单主要是对翻页控件的使用,有时候想要做一些功能是主要是先了解下是否有现成的控件可以使用,做起来比较简单不用费太大的劲去找别的资料,或者别的办法设计.有空多读读android API了解熟悉了做什么都比较容易.(注意:ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中加入“android-support-v4.jar” 如果sdk是4.0及以上的

一款基于css3的3D图片翻页切换特效

今天给大家分享一款基于css3的3D图片翻页切换特效.单击图片下方的滑块会切换上方的图片.动起你的鼠标试试吧,效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="imgdex"> <figure> <img src="arabic-eyes.jpg" alt="Photograph of a woman's face under a Bedouin headress"><

Android 实现书籍翻页效果(转载链接)

Android 实现书籍翻页效果----原理篇 效果图: Android 实现书籍翻页效果----完结篇 效果图: Android 实现书籍翻页效果----升级篇 效果图: Android 实现书籍翻页效果---番外篇之光影效果

图片翻页效果引出的animate.css,很好玩,多动动吧~

有一个项目,客户需要页面翻转的效果,需要应用在合作伙伴里面的图片上,一共有43张图片,我把它做成了随机定时的转动,鼠标经过时转动: animate.css科普文章:http://www.dowebok.com/demo/2014/98/ http://ourjs.com/detail/animate-css%E8%AE%A9%E6%B7%BB%E5%8A%A0css%E5%8A%A8%E7%94%BB%E5%83%8F%E5%96%9D%E6%B0%B4%E4%B8%80%E6%A0%B7%E5

简单的图片翻页

1 function animatePic(){ 2 var box=$(".list-img"); 3 var item=box.find(".item-img"); 4 var left; 5 var len=item.length; 6 var _w=item.width(); 7 var w=_w*len; 8 var num=2; 9 $(".list-img").width(_w*len); 10 $(".next"

翻页式爬取百度图片

小编大约于这个月月初写的这一份代码,但很不幸,大概20号,再次找百度图片翻页流的时候,发现是瀑布流且回不去了,还好代码里面留了翻页流的网址 所以,现在来分享给大家. 语言:python3.6 库:requests, re, urllib 除了requests需要pip install之外,其他两个是python自带的模块,直接调用即可. 代码中的原网址:https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=小姐姐&a

★android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)

例子中用于解析Json的Gson请自己Google下载 主Activity: package COM.Example.Main; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import COM.Example.Main.R; import COM.Example.Main.stringG

android ViewPager左右滑动翻页,并可以删除page

首先新建一个Activity,继承FragmentActivity. 初始化一个Fragment的List集合,用于像FragmentStatePagerAdapter填充数据,而ViewPager由FragmentStatePagerAdapter的实例进行初始化.和ListView一样,Fragment的List集合的数据变了,就通知FragmentStatePagerAdapter进行界面刷新. ArrayList<Fragment> fragments =new ArrayList&l