Android中图片的无限轮播

来源:互联网 发布:叶利钦与普京 知乎 编辑:程序博客网 时间:2024/06/07 13:09

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;@Overrideprotected 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() {@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stubfor(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);}}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});vp.setCurrentItem(imgArray.length*1000);handler.sendEmptyMessageDelayed(0, 2000);}@Overrideprotected void onStop() {super.onStop();//移除所有消息和任务handler.removeCallbacksAndMessages(null);}private void initDots() {// TODO Auto-generated method stubfor(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;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn Integer.MAX_VALUE;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0==arg1;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stubcontainer.removeView((View) object);}@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubImageView imageView=new ImageView(context);imageView.addOnPageChangeListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (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>


 

1 0
原创粉丝点击