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>
相关文章推荐
- Android 自定义ViewGroup无限轮播(本地图片)
- Android实现广告页图片无限轮播
- Android实现图片自动轮播并且支持手势左右无限滑动
- Android图片无限轮播的实现代码
- Android ViewPager从网络获取图片实现无限轮播
- 推荐Android中两个很好用的banner,可无限轮播,可使用第三方图片加载框架加载网络图
- android viewPager网络加载图片无限自动轮播
- Android viewpager无限轮播获取网络图片功能
- 推荐Android中两个很好用的banner,可无限轮播,可使用第三方图片加载框架加载网络图
- Android广告图片轮播,支持无限循环和设置轮播样式、切换时间等
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- android无限轮播banner图片--viewpager
- Android实现图片自动轮播并且支持手势左右无限滑动
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- Android 实现图片无限轮播
- Android使用自定义控件实现加载网络图片无限轮播
- android中viewPager展示图片及无限轮播(一)
- Android使用自定义控件实现加载本地图片无限轮播
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- Android实现广告页图片无限轮播