广告轮播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 }

浙公网安备 33010602011771号