import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.hgz.test.viewpagerbannerdemo.utils.ImageLoadTools;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<String> imageAddress;
private int index = 0;
private ViewPager viewPager;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
{
//界面切换
viewPager.setCurrentItem(index);
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewpager);
imageAddress = new ArrayList<String>();
//准备好网络图片地址
imageAddress.add("http://img.juhe.cn/cookbook/s/1/45_c25e0cedd2012f45.jpg");
imageAddress.add("http://img.juhe.cn/cookbook/s/1/45_eb68327980f022dd.jpg");
imageAddress.add("http://img.juhe.cn/cookbook/s/1/45_8e0cf83cb7306281.jpg");
MyAdapter adapter = new MyAdapter();
//设置适配器
viewPager.setAdapter(adapter);
autoPlay();
}
private class MyAdapter extends PagerAdapter {
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final ImageView imageView = new ImageView(MainActivity.this);
new ImageLoadTools(new ImageLoadTools.ImageLoadListeners() {
@Override
public void imageLoad(Bitmap bitmap) {
if (bitmap!=null){
imageView.setImageBitmap(bitmap);
}else{
imageView.setImageResource(R.mipmap.ic_launcher);
}
}
}).execute(imageAddress.get(position % imageAddress.size()));
container.addView(imageView);
return imageView;
}
}
/**
* 轮播
*/
private void autoPlay(){
new Thread(){
@Override
public void run() {
super.run();
while(true){
try {
index++;
int index1=index%imageAddress.size();
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
handler.sendEmptyMessage(1);
}
}
}.start();
}
}
utils类
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class ImageLoadTools extends AsyncTask<String,Void,Bitmap>{
private ImageLoadListeners imageLoadListeners;
public ImageLoadTools(ImageLoadListeners imageLoadListeners) {
this.imageLoadListeners=imageLoadListeners;
}
public interface ImageLoadListeners{
void imageLoad(Bitmap bitmap);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
imageLoadListeners.imageLoad(bitmap);
}
@Override
protected Bitmap doInBackground(String... params) {
try {
String param = params[0];
URL url = new URL(param);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int code = connection.getResponseCode();
if (code==HttpURLConnection.HTTP_OK){
InputStream is = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}