iption);
images = new ArrayList<ImageView>();
for (int i = 0; i < imgesId.length; i++) {
ImageView image = new ImageView(this);
image.setBackgroundResource(imgesId[i]);
images.add(image);
ImageView point = new ImageView(this);
point.setBackgroundResource(R.drawable.point_selecte);
//为Point设置布局参数 应为point的父节点是LinerLayout,所以需要使用LinearLayout.LayoutParams
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20);
params.bottomMargin = 20;
if (i == 0)
point.setEnabled(false);
else {
point.setEnabled(true);
params.leftMargin = 20;
}
point.setLayoutParams(params);
ll_point_group.addView(point);
}
viewPage.setAdapter(new MyViewPageAdapter());
//初始化显示imgDescription
imgDescription.setText(imgDescriptions[presentPostion]);
//设置初始启动imageView的位置为1000的中间,避免初始为0时不能向左滑动
viewPage.setCurrentItem(1000 / 2 - 1000 / 2 % images.size(), true);
//设置ViewPage页面切换的监听事件
viewPage.addOnPageChangeListener(new MyPageChangeListener());
//延迟发送handler消息 用于启动ViewPage自动轮播
handler.sendEmptyMessageDelayed(OPTION_TYPE_AUTO, 2000);
for (int i = 0; i < ll_point_group.getChildCount(); i++) {
final View point = ll_point_group.getChildAt(i);
final int finalI = i;
point.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
pointClickPosition = finalI;
handler.removeCallbacksAndMessages(null);
handler.sendEmptyMessageDelayed(OPTION_TYPE_POINT, 50);
for (int j = 0; j < ll_point_group.getChildCount(); j++) {
ll_point_group.getChildAt(j).setEnabled(true);
}
point.setEnabled(false);
}
});
}
}
/**
* viewPage切换监听
*/
class MyPageChangeListener implements ViewPager.OnPageChangeListener {
/**
* 当页滑动的时候 回调该方法
*
* @param position 当前滑动页面的位置
* @param positionOffset 当前页面滑动的百分比
* @param positionOffsetPixels 当前页面滑动的像素
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
/**
* 页面被选中后已完全显示时调用改方法
*
* @param position 被选中的页面的位置
*/
@Override
public void onPageSelected(int position) {
imgDescription.setText(imgDescriptions[position % imgDescriptions.length]);
ll_point_group.getChildAt(presentPostion % images.size()).setEnabled(true);
ll_point_group.getChildAt(position % imgDescriptions.length).setEnabled(false);
presentPostion = position;
}
/**
* 页面滑动的状态
* 静止-滑动
* 滑动-静止
* 静止-拖拽
*
* @param state
*/
@Override
public void onPageScrollStateChanged(int state) {
if (state == viewPage.SCROLL_STATE_DRAGGING) { //拖拽状态
isDraging = true;
//如果处于拖拽状态 就移除handler 避免拖拽过程中自动轮播、
handler.removeCallbacksAndMessages(null);
} else if (state == viewPage.SCROLL_STATE_SETTLING) {//滑动状态
} else if (state == viewPage.SCROLL_STATE_IDLE) {//休闲状态
isDraging = false;
//拖拽结束后调用改方法 先移除handler 然后重新发送handler 启动自动 轮播
handler.removeCallbacksAndMessages(null);
handler.sendEmptyMessageDelayed(OPTION_TYPE_AUTO, 3000);
}
}
}
/**
* pageAdaapter适配器
*/
class MyViewPageAdapter extends PagerAdapter {
/**
* 返回ViewPage总数
*
* @return
*/
@Override
public int getCount() {
return 1000;
}
/**
* 返回ViewPage中的position位置处的ImageView
*
* @param container 代表ViewPage
* @param position 位置
* @retu |