ViewpagerBanner
来源:互联网 发布:java 画流程图 编辑:程序博客网 时间:2024/05/22 05:08
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; }}
阅读全文
0 0
- viewpagerbanner
- ViewpagerBanner
- 网络编程中常见地址结构与转换(IPv4/IPv6)
- c#面向对象
- [ASP.NET MVC 小牛之路]12
- Ubuntu下profile,bashrc
- 【数据挖掘笔记二】认识数据
- ViewpagerBanner
- SOAPUI测试步骤(二)---流量控制(Conditional Goto)
- 欢迎使用CSDN-markdown编辑器
- 纪念工作的第一天——Three.js学习笔记
- (二)策略模式
- bzoj 4146: [AMPPZ2014]Divisors 暴力+调和级数
- MyISAM和InnoDB的区别
- Vijos P2773 士兵站队
- java系统学习blog