ViewPager 轮播图(本地图片篇)

直接贴代码:

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 就算是成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值