广告轮播1

1、视图

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     >
 7     <android.support.v4.view.ViewPager
 8         android:id="@+id/vp"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent"
11         android:layout_weight="1"
12         >   
13     </android.support.v4.view.ViewPager>
14    
15     <LinearLayout 
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content"
18         android:id="@+id/ll"
19         android:orientation="horizontal"
20         android:layout_gravity="center_horizontal"
21         >
22         
23     </LinearLayout>
24     <TextView 
25         android:layout_width="match_parent"
26         android:layout_height="match_parent"
27         android:layout_weight="1"
28         />
29 </LinearLayout>

2、MainActivity代码

  1 package com.zyhui.adv;
  2 
  3 import java.util.ArrayList;
  4 import java.util.List;
  5 
  6 import android.os.Bundle;
  7 import android.os.Handler;
  8 import android.app.Activity;
  9 import android.support.v4.view.PagerAdapter;
 10 import android.support.v4.view.ViewPager;
 11 import android.support.v4.view.ViewPager.OnPageChangeListener;
 12 import android.view.View;
 13 import android.view.ViewGroup;
 14 import android.widget.ImageView;
 15 import android.widget.LinearLayout;
 16 
 17 public class MainActivity extends Activity implements OnPageChangeListener {
 18     private ViewPager vp;
 19     private LinearLayout ll;
 20     private int[] images;
 21     private int currentIndex = 300;
 22     private List<ImageView> views;
 23     private MyAdapter adapter;
 24     private long lastTime;
 25     private Handler handler = new Handler();
 26     private Runnable run = new Runnable(){
 27         @Override
 28         public void run() {
 29             if(System.currentTimeMillis() - lastTime > 1000){
 30                 currentIndex++;
 31                 vp.setCurrentItem(currentIndex);
 32                 lastTime = System.currentTimeMillis();
 33             }
 34             
 35             handler.postDelayed(run, 1000);
 36         }
 37     };
 38     @Override
 39     protected void onCreate(Bundle savedInstanceState) {
 40         super.onCreate(savedInstanceState);
 41         setContentView(R.layout.activity_main);
 42         
 43         initView();
 44     }
 45     
 46     private void initView() {
 47         vp = (ViewPager) findViewById(R.id.vp);
 48         ll = (LinearLayout) findViewById(R.id.ll);
 49         images = new int[]{R.drawable.lmm1,R.drawable.lmm2,R.drawable.lmm3,R.drawable.lmm4,R.drawable.lmm5};
 50         views = new ArrayList<ImageView>();
 51         for(int i=0; i < images.length; i++){
 52             ImageView img = new ImageView(this);
 53             img.setImageResource(images[i]);
 54             views.add(img);
 55             
 56             ImageView img_circle = new ImageView(this);
 57             img_circle.setImageResource(R.drawable.nomal);
 58             img_circle.setPadding(10, 5, 10, 5);
 59             ll.addView(img_circle);
 60         }
 61         
 62         //适配器
 63         adapter = new MyAdapter();
 64         vp.setAdapter(adapter);
 65         vp.setCurrentItem(300);
 66         vp.setOnPageChangeListener(this);
 67         
 68         //启动循环
 69         handler.postDelayed(run, 2000);
 70     }
 71     
 72     private class MyAdapter extends PagerAdapter{
 73 
 74         @Override
 75         public int getCount() {
 76             // TODO Auto-generated method stub
 77             return Integer.MAX_VALUE;
 78         }
 79 
 80         @Override
 81         public boolean isViewFromObject(View view, Object object) {
 82             // TODO Auto-generated method stub
 83             return view == object;
 84         }
 85         
 86         @Override
 87         public Object instantiateItem(ViewGroup container, int position) {
 88             // TODO Auto-generated method stub
 89             int index = position%views.size();
 90             ((ViewPager)container).addView(views.get(index));
 91             return views.get(index);
 92         }
 93         
 94         @Override
 95         public void destroyItem(ViewGroup container, int position, Object object) {
 96             // TODO Auto-generated method stub
 97             ((ViewPager)container).removeView(views.get(position%views.size()));
 98         }
 99         
100     }
101 
102     @Override
103     public void onPageScrollStateChanged(int state) {
104         // TODO Auto-generated method stub
105         
106     }
107 
108     @Override
109     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
110         // TODO Auto-generated method stub
111         
112     }
113 
114     @Override
115     public void onPageSelected(int position) {
116         currentIndex = position;
117         int index = position%views.size();
118         setCurrentSelector(index);
119         lastTime = System.currentTimeMillis();
120     }
121 
122     private void setCurrentSelector(int index) {
123         for(int i=0; i<ll.getChildCount(); i++){
124             ImageView child = (ImageView) ll.getChildAt(i);
125             if(i == index){
126                 child.setImageResource(R.drawable.select);
127             }else{
128                 child.setImageResource(R.drawable.nomal);
129             }
130         }
131     }
132     
133     @Override
134     protected void onDestroy() {
135         super.onDestroy();
136         handler.removeCallbacks(run);
137     }
138 }

 

posted @ 2016-05-31 22:34  zhongyinghe  阅读(140)  评论(0)    收藏  举报