您的位置:首页 > 理论基础 > 计算机网络

ViewPager网络加载图片并无限轮播实现

2017-05-12 16:43 330 查看
import android.os.Handler;
import android.os.Message;
import android.provider.ContactsContract;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private ViewPager vv;
private MyAdapter adapter;
private  String[] images = {"http://l2.51fanli.net//tuan//images//1//5806eac956808.jpg",
"http://l2.51fanli.net//tuan//images//b//580991bb30560.jpg",
"http://l0.51fanli.net//tuan//images//b//58115f2593dc3.jpg",
"http://l2.51fanli.net//tuan//images//0//57923840b054d.jpg",
"http://l2.51fanli.net//tuan//images//e//58101e11ab164.jpg"
};
private ImageView[]  points;
private   int  index=0;
private Handler  han = new Handler(){
@Override
public void handleMessage(Message msg) {
vv.setCurrentItem(index);
index++;
index=index%images.length;
send();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vv = (ViewPager)findViewById(R.id.vv);
adapter = new MyAdapter();
vv.setAdapter(adapter);
points = new ImageView[5];
points[0] = (ImageView)findViewById(R.id.v1);
points[1] = (ImageView)findViewById(R.id.v2);
points[2] = (ImageView)findViewById(R.id.v3);
points[3] = (ImageView)findViewById(R.id.v4);
points[4] = (ImageView)findViewById(R.id.v5);
for (ImageView  s: points) {
s.setOnClickListener(this);
}
updatePoint(index);
send();
vv.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
updatePoint(position);
}

@Override
public void onPageScrollStateChanged(int state) {

}
});
}
private void updatePoint(int position) {
//先把所有点初始化原来的样式
for(ImageView image:points){
image.setImageResource(R.drawable.control_unfocus);
}
points[position].setImageResource(R.drawable.control_focus);
}
public void send(){
new Thread(){
@Override
public void run() {
han.sendEmptyMessageDelayed(index,2000);
}
}.start();
}
@Override
public void onClick(View v) {
han.removeCallbacksAndMessages(null);
int num = Integer.valueOf(v.getTag().toString());
vv.setCurrentItem(num,false);
index = num+1;
send();
}

class MyAdapter  extends PagerAdapter{

@Override
public int getCount() {
return images.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView  im = new ImageView(MainActivity.this);
Glide.with(MainActivity.this).load(images[position]).into(im);
container.addView(im);
return  im;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: