1.设置图片轮播,设置小圆点的轮播。
public class MainActivity extends Activity {
private ArrayList
arrayList;
private int[] pictures;
private LinearLayout lv;
private ViewPager vp;
private ArrayList
arrayList2;
private Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
//当每次接收到消息时,vp上展示的页面自动+1个。
vp.setCurrentItem(vp.getCurrentItem()+1);
//继续发送消息,实现轮播
//handler.sendEmptyMessageDelayed(0, 2000);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewPager) findViewById(R.id.vp);
lv = (LinearLayout) findViewById(R.id.lv);
//加载数据
init();
//设置适配
vp.setAdapter(new MyAdapter(MainActivity.this,arrayList));
//设置监听
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
//必须同时设置小圆点的无限轮播
int newposotion=arg0%arrayList2.size();
//当有一张图片时,便会有一个圆点图标
//先全部设置成不显示
for (int i = 0; i < arrayList2.size(); i++) {
arrayList2.get(i).setSelected(false);
}
//然后在设置当前显示
arrayList2.get(newposotion).setSelected(true);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
//发送消息,实现轮播
autoPlay();
}
private void autoPlay() {
handler.sendEmptyMessageDelayed(0, 2000);
}
private void init() {
//创建一个集合,存放imageview
arrayList = new ArrayList
();
//存放小圆点的集合
arrayList2 = new ArrayList
();
//把图片存入数组(图片是Intlei'xi类型,所以创建int数组)
pictures = new int[]{
R.drawable.ph1,R.drawable.ph2,R.drawable.qqq,R.drawable.background
};
for (int i = 0; i < pictures.length; i++) {
//创建一个imageView的对象
ImageView imageView = new ImageView(this);
//设置填充类型(居中填满)
// imageView.setScaleType(ScaleType.CENTER_CROP);
imageView.setScaleType(ScaleType.CENTER_CROP);
//将图片放入imageView中
imageView.setImageResource(pictures[i]);
//将imageView存入集合
arrayList.add(imageView);
//创建一个ImageView控件
ImageView imageView1 = new ImageView(MainActivity.this);
//加在小圆点
imageView1.setBackgroundResource(R.drawable.all_select);
imageView1.setPadding(10, 10, 10, 10);
//并且把设置好的小圆点存入集合中
arrayList2.add(imageView1);
//将小圆点放入布局中
lv.addView(imageView1);
}
//默认第一个被选中
arrayList2.get(0).setSelected(true);
//当手指放在上面时,停止轮播。触摸键听
vp.setOnTouchListener(new OnTouchListener() {
@Override//MotionEvent活动事件
public boolean onTouch(View v, MotionEvent event) {
//从事件中得到活动
switch (event.getAction()) {
//当活动事件按下时,轮播停止
case MotionEvent.ACTION_DOWN:
//handler中删除所有消息回掉
handler.removeCallbacksAndMessages(null);
break;
//当触摸抬起时,继续轮播
case MotionEvent.ACTION_UP:
//继续轮播
autoPlay();
break;
default:
break;
}
return false;
}
});
}
@Override//在activity销毁时。移除消息
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
//从handler中移除回掉的消息
handler.removeCallbacksAndMessages(null);
}
}
3.小圆点为true时的样式