MainActivity中:
-
String []imgArray={
"http://img3.imgtn.bdimg.com/it/u=2685347427,857849712&fm=21&gp=0.jpg",
-
"http://img1.imgtn.bdimg.com/it/u=4202140919,772960800&fm=21&gp=0.jpg",
-
"http://img4.imgtn.bdimg.com/it/u=3646050487,856369339&fm=21&gp=0.jpg",
-
"http://img2.imgtn.bdimg.com/it/u=2602918815,692833193&fm=21&gp=0.jpg" };
-
private LinearLayout ll;
-
Handler handler=
new Handler(){
-
public void handleMessage(android.os.Message msg) {
-
super.handleMessage(msg);
-
int currentItem=vp.getCurrentItem();
-
currentItem++;
-
vp.setCurrentItem(currentItem);
-
handler.sendEmptyMessageDelayed(
0,
2000);
-
};
-
};
-
private ViewPager vp;
-
-
-
@Override
-
protected void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.activity_main);
-
vp = (ViewPager)findViewById(R.id.vp);
-
ll = (LinearLayout)findViewById(R.id.ll);
-
vp.setAdapter(
new Myadapter(
this, imgArray, handler));
-
initDots();
-
vp.setOnPageChangeListener(
new OnPageChangeListener() {
-
-
@Override
-
public void onPageSelected(int arg0) {
-
// TODO Auto-generated method stub
-
for(
int i=
0;i<imgArray.length;i++){
-
ImageView imageView=(ImageView)ll.getChildAt(i);
-
if(i==arg0%imgArray.length){
-
imageView .setImageResource(R.drawable.point_selected);
-
}
else{
-
imageView .setImageResource(R.drawable.point_mormal);
-
}
-
}
-
}
-
-
@Override
-
public void onPageScrolled(int arg0, float arg1, int arg2) {
-
}
-
@Override
-
public void onPageScrollStateChanged(int arg0) {
-
}
-
});
-
vp.setCurrentItem(imgArray.length*
1000);
-
handler.sendEmptyMessageDelayed(
0,
2000);
-
-
}
-
@Override
-
protected void onStop() {
-
super.onStop();
-
//移除所有消息和任务
-
handler.removeCallbacksAndMessages(
null);
-
}
-
private void initDots() {
-
// TODO Auto-generated method stub
-
for(
int i=
0;i<imgArray.length;i++){
-
ImageView iv=
new ImageView(
this);
-
if(i==
0){
-
//变亮
-
iv.setImageResource(R.drawable.point_selected);
-
}
else{
-
iv.setImageResource(R.drawable.point_mormal);
-
}
-
LayoutParams params=
new LayoutParams(
20,
20);
-
params.setMargins(
5,
2,
5,
2);
-
ll.addView(iv,params);
-
}
-
}
Myadapter extends PagerAdapter:
-
private Context context;
-
private String [] imgarray;
-
private Handler handler;
-
-
public Myadapter(Context context, String[] imgarray,Handler handler) {
-
super();
-
this.context = context;
-
this.imgarray = imgarray;
-
this.handler=handler;
-
}
-
-
@Override
-
public int getCount() {
-
// TODO Auto-generated method stub
-
return Integer.MAX_VALUE;
-
}
-
-
@Override
-
public boolean isViewFromObject(View arg0, Object arg1) {
-
// TODO Auto-generated method stub
-
return arg0==arg1;
-
}
-
-
@Override
-
public void destroyItem(ViewGroup container, int position, Object object) {
-
// TODO Auto-generated method stub
-
container.removeView((View) object);
-
}
-
-
@Override
-
public Object instantiateItem(ViewGroup container, int position) {
-
// TODO Auto-generated method stub
-
ImageView imageView=
new ImageView(context);
-
imageView.addOnPageChangeListener(
new OnTouchListener() {
-
-
@Override
-
public boolean onTouch(View v, MotionEvent event) {
-
// TODO Auto-generated method stub
-
switch (event.getAction()) {
-
case MotionEvent.ACTION_DOWN:
-
handler.removeCallbacksAndMessages(
null);
-
break;
-
case MotionEvent.ACTION_UP:
-
case MotionEvent.ACTION_CANCEL:
-
handler.sendEmptyMessageDelayed(
0,
2000);
-
break;
-
-
default:
-
break;
-
}
-
return
true;
-
}
-
});
-
-
BitmapUtils bitmapUtils=
new BitmapUtils(context);
-
bitmapUtils.display(imageView, imgarray[position%imgarray.length]);
-
container.addView(imageView);
-
return imageView;
-
}
layout:
-
<android.support.v4.view.ViewPager
-
android:layout_width=
"match_parent"
-
android:layout_height=
"match_parent"
-
android:id=
"@+id/vp" />
-
<LinearLayout
-
android:layout_width=
"fill_parent"
-
android:layout_height=
"wrap_content"
-
android:id=
"@+id/ll"
-
android:gravity=
"center_horizontal"
-
android:layout_alignBottom=
"@id/vp"
-
android:orientation=
"horizontal"
-
-
>
</LinearLayout>