当前位置:   article > 正文

ViewPager 轮播图(本地图片篇)_uview轮播图使用本地图片

uview轮播图使用本地图片

直接贴代码:

MainActivity

[java]  view plain  copy
  1. package com.cruze.viewpager;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.support.v4.view.ViewPager;  
  6. import android.support.v4.view.ViewPager.OnPageChangeListener;  
  7. import android.view.ViewGroup;  
  8. import android.view.ViewGroup.LayoutParams;  
  9. import android.widget.ImageView;  
  10. import android.widget.LinearLayout;  
  11.   
  12. import com.example.administrator.myapplication.R;  
  13.   
  14. /*** 
  15.  *  
  16.  * @author Cruze 
  17.  *  
  18.  */  
  19. public class MainActivity extends Activity implements OnPageChangeListener{  
  20.   
  21.     private ViewPager vPager;  
  22.     private ImageView[] dots; // 小圆点的数组  
  23.     private ImageView[] imageViews;// 轮播图的数组  
  24.     private int[] img = new int[] { R.drawable.pic1, R.drawable.pic2,  
  25.             R.drawable.pic3, R.drawable.pic4 };// 图片 资源  
  26.   
  27.     @Override  
  28.     protected void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.activity_main);  
  31.   
  32.         initView();  
  33.     }  
  34.   
  35.     /**** 
  36.      * 初始化页面 
  37.      */  
  38.     private void initView() {  
  39.         ViewGroup group = (ViewGroup) findViewById(R.id.viewGroup);  
  40.   
  41.         vPager = (ViewPager) findViewById(R.id.viewPager);  
  42.   
  43.         dots = new ImageView[img.length];  
  44.         //将小圆点填充到数组中  
  45.         for (int i = 0; i < dots.length; i++) {  
  46.   
  47.             ImageView imageView = new ImageView(this);  
  48.             imageView.setLayoutParams(new LayoutParams(1010));  
  49.             dots[i] = imageView;  
  50.             if (i == 0) {  
  51.                 dots[i].setBackgroundResource(R.drawable.banner_dian_focus);  
  52.             } else {  
  53.                 dots[i].setBackgroundResource(R.drawable.banner_dian_blur);  
  54.             }  
  55.             group.addView(imageView);  
  56.         }  
  57.         //将图片填充到数组中  
  58.         imageViews = new ImageView[img.length];  
  59.         for(int i=0; i<imageViews.length; i++){  
  60.             ImageView imageView = new ImageView(this);  
  61.             imageViews[i] = imageView;  
  62.             imageView.setBackgroundResource(img[i]);  
  63.         }  
  64.   
  65.         //设置Adapter  
  66.         vPager.setAdapter(new MyPagerAdapter(imageViews));  
  67.         //设置监听,主要是设置点点的背景  
  68.         vPager.setOnPageChangeListener(this);  
  69.         //设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动  
  70.         vPager.setCurrentItem((imageViews.length) * 100);  
  71.     }  
  72.   
  73.     @Override  
  74.     public void onPageScrollStateChanged(int arg0) {  
  75.         // TODO Auto-generated method stub  
  76.   
  77.     }  
  78.   
  79.     @Override  
  80.     public void onPageScrolled(int arg0, float arg1, int arg2) {  
  81.         // TODO Auto-generated method stub  
  82.   
  83.     }  
  84.   
  85.     @Override  
  86.     public void onPageSelected(int arg0) {  
  87.         setImageBackground(arg0 % imageViews.length);  
  88.   
  89.     }  
  90.   
  91.     private void setImageBackground(int index) {  
  92.         for(int i=0; i<dots.length; i++){  
  93.             if(i == index){  
  94.                 dots[i].setBackgroundResource(R.drawable.banner_dian_focus);  
  95.             }else{  
  96.                 dots[i].setBackgroundResource(R.drawable.banner_dian_blur);  
  97.             }  
  98.         }  
  99.   
  100.     }  
  101. }  


 
Adapter 

[java]  view plain  copy
  1. package com.cruze.viewpager;  
  2.   
  3. import android.support.v4.view.PagerAdapter;  
  4. import android.support.v4.view.ViewPager;  
  5. import android.view.View;  
  6. import android.widget.ImageView;  
  7.   
  8. public class MyPagerAdapter extends PagerAdapter{  
  9.     private ImageView[] imageViews;// 轮播图的数组  
  10.   
  11.     public MyPagerAdapter(ImageView[] imageViews){  
  12.         this.imageViews = imageViews;  
  13.     }  
  14.   
  15.   
  16.     @Override  
  17.     public int getCount() {  
  18.         return Integer.MAX_VALUE;  
  19.     }  
  20.   
  21.     @Override  
  22.     public boolean isViewFromObject(View arg0, Object arg1) {  
  23.         return arg0 == arg1;  
  24.     }  
  25.   
  26.     @Override  
  27.     public void destroyItem(View container, int position, Object object) {  
  28. //        ((ViewPager)container).removeView(imageViews[position % imageViews.length]);  
  29.   
  30.     }  
  31.   
  32.     /** 
  33.      * 载入图片进去,用当前的position 除以 图片数组长度取余数是关键 
  34.      */  
  35.     @Override  
  36.     public Object instantiateItem(View container, int position) {  
  37.         try {  
  38.             ((ViewPager)container).addView(imageViews[position % imageViews.length], 0);  
  39.         }catch(Exception e){  
  40.             //handler something  
  41.         }  
  42.         return imageViews[position % imageViews.length];  
  43.     }  
  44.   
  45. }  

布局文件:

[html]  view plain  copy
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="180dp"  
  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.         <LinearLayout  
  12.             android:id="@+id/viewGroup"  
  13.             android:layout_width="fill_parent"  
  14.             android:layout_height="25dp"  
  15.             android:layout_alignParentBottom="true"  
  16.             android:gravity="center_horizontal|bottom"  
  17.             android:orientation="horizontal" >  
  18.         </LinearLayout>  
  19. </RelativeLayout>  

好了,一个基本读取本地图片的viewPager 就算是成功了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/251156
推荐阅读
相关标签
  

闽ICP备14008679号