public class MainActivity extends AppCompatActivity {
//声明
DisplayImageOptions
static {
options = new DisplayImageOptions.Builder()
.showImageOnFail(R.mipmap.ic_error)
.showImageForEmptyUri(R.mipmap.ic_empty)
.showImageOnLoading(R.mipmap.loading)
.build();
}
private static DisplayImageOptions options;
private List imgeList;
private int index;
private int dotIndex;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
//page页加一
index++;
//设置index页
viewPager.setCurrentItem(index);
//继续发送消息
handler.sendEmptyMessageDelayed(1,1000);
}
};
private ViewPager viewPager;
private LinearLayout linearLay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//准备图片数据
imgeList = Arrays.asList("http://cdn.duitang.com/uploads/blog/201308/18/20130818150526_Ru2Bk.thumb.600_0.png",
"http://www.bkill.com/u/info_img/2012-09/02/2012083116140522302.jpg",
"http://www.it165.net/uploadfile/2011/1218/20111218070928328.jpg");
//找到控件
viewPager = (ViewPager) findViewById(R.id.viewpager);
linearLay = (LinearLayout) findViewById(R.id.linearl);
//调用适配器
MyAdapter myAdapter = new MyAdapter();
viewPager.setAdapter(myAdapter);
//viewpager页的滑动事件
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
//选中的状态
@Override
public void onPageSelected(int position) {
//0,1,2
这个是切换当前那个页面的状态
linearLay.getChildAt(position%imgeList.size()).setBackgroundResource(R.drawable.shape_select);
//这个是将前一个点状态变更为未选中状态
linearLay.getChildAt(dotIndex%imgeList.size()).setBackgroundResource(R.drawable.shape_normal);
//更新圆点信息
dotIndex = position;
}
@Override
public void onPageScrollStateChanged
(int state) {
}
});
//根据图片的个数生成小圆点
for (int i=0;i
//小圆点的控件
View dotView = new View(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(10,10);
//设置控件与控件的间距
params.leftMargin = 10;
params.rightMargin = 10;
dotView.setLayoutParams(params);
//设置小圆点的状态
if(i == 0){
dotView.setBackgroundResource(R.drawable.shape_select);
}else {
dotView.setBackgroundResource(R.drawable.shape_normal);
}
linearLay.addView(dotView);
}
//发送消息
handler.sendEmptyMessageDelayed(1,1000);
}
//适配器
class MyAdapter extends PagerAdapter{
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//加载图片,ImageLoader加载
ImageView imageView = new ImageView(MainActivity.this);
//为控件赋值
ImageLoader.getInstance().displayImage(imgeList.get(position%imgeList.size()),imageView,options);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//super.destroyItem(container, position, object);
container.removeView((View) object);
}
}
}