您的位置:首页 > 移动开发 > Android开发

Android中图片的无限轮播

2016-10-27 08:20 218 查看
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 stu
a2be
b
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>


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐