【实例简介】

【实例截图】

99fc6134954a1e0610d9a112fd9ec5be.png

【核心代码】

package com.example.viewpagerdemo;

import java.util.ArrayList;

import java.util.List;

import com.bumptech.glide.Glide;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageView;

import android.widget.ImageView.ScaleType;

public class MainActivity extends Activity {

private ViewPager viewpager;

private ImageView dot1;

private ImageView dot2;

private ImageView dot3;

private ImageView dot4;

private String[] imgUrlArr;

private List imgList;

private Context context;

private int num = 300;//起始位置300

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

context=this;

initView();

loadImg();

}

public void initView(){

viewpager=(ViewPager) findViewById(R.id.mViewPager);

dot1=(ImageView) findViewById(R.id.dot1);

dot2=(ImageView) findViewById(R.id.dot2);

dot3=(ImageView) findViewById(R.id.dot3);

dot4=(ImageView) findViewById(R.id.dot4);

imgUrlArr=new String[]{"http://fengshouguo.com/data/upload/mobile/special/s0/s0_05233785427198540.jpg",

"http://fengshouguo.com/data/upload/mobile/special/s0/s0_05233870008759730.jpg",

"http://fengshouguo.com/data/upload/mobile/special/s0/s0_05233785635319825.jpg",

"http://fengshouguo.com/data/upload/mobile/special/s0/s0_05233786821255365.jpg"};

}

public void loadImg(){

imgList=new ArrayList();

for(int i=0;i

ImageView imageView=new ImageView(context);

//Glide加载网络图片

Glide.with(context)

.load(imgUrlArr[i])

.into(imageView);

//设置imageview占满整个ViewPager

imageView.setScaleType(ScaleType.FIT_XY);

imgList.add(imageView);

}

viewpager.setAdapter(new MyAdapter());

viewpager.setOnPageChangeListener(new MyPagerChangeListener());

viewpager.setCurrentItem(300);

mHandler.postDelayed(mRunnable, 2000);

}

private Handler mHandler = new Handler();

private Runnable mRunnable = new Runnable() {

public void run() {

// 每隔多长时间执行一次

/**

* mHandler.postDelayed(mRunnable, 1000*PhoneConstans.TIMEVALUE);

*/

mHandler.postDelayed(mRunnable, 1000 * 3);

num ;

viewHandler.sendEmptyMessage(num);

}

};

private final Handler viewHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

viewpager.setCurrentItem(msg.what);

super.handleMessage(msg);

}

};

class MyPagerChangeListener implements OnPageChangeListener{

@Override

public void onPageScrollStateChanged(int arg0) {

// TODO Auto-generated method stub

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

// TODO Auto-generated method stub

}

@Override

public void onPageSelected(int arg0) {

num = arg0;

arg0 = arg0 % imgList.size();

switch (arg0) {

case 0:

dot1.setBackgroundResource(R.drawable.dot1);

dot2.setBackgroundResource(R.drawable.dot2);

dot3.setBackgroundResource(R.drawable.dot2);

dot4.setBackgroundResource(R.drawable.dot2);

break;

case 1:

dot1.setBackgroundResource(R.drawable.dot2);

dot2.setBackgroundResource(R.drawable.dot1);

dot3.setBackgroundResource(R.drawable.dot2);

dot4.setBackgroundResource(R.drawable.dot2);

break;

case 2:

dot1.setBackgroundResource(R.drawable.dot2);

dot2.setBackgroundResource(R.drawable.dot2);

dot3.setBackgroundResource(R.drawable.dot1);

dot4.setBackgroundResource(R.drawable.dot2);

break;

case 3:

dot1.setBackgroundResource(R.drawable.dot2);

dot2.setBackgroundResource(R.drawable.dot2);

dot3.setBackgroundResource(R.drawable.dot2);

dot4.setBackgroundResource(R.drawable.dot1);

break;

default:

break;

}

}

}

class MyAdapter extends PagerAdapter{

@Override

public int getCount() {

return Integer.MAX_VALUE;

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

return arg0 == arg1;

}

@Override

public Object instantiateItem(View container, int position) {

try {

((ViewPager) container).addView((View) imgList.get(position % imgList.size()),

0);

} catch (Exception e) {

}

return imgList.get(position % imgList.size());

}

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

//container.removeView(list.get(position));

}

@Override

public int getItemPosition(Object object) {

return super.getItemPosition(object);

}

}

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐