Android如何实现图片轮播
来源:互联网 发布:数据铁笼文献 编辑:程序博客网 时间:2024/05/17 03:10
实现图片导航界面的轮播,也可以用在app的引导图片实现
xml
<android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="fill_parent" android:layout_height="160dp" />
java
activity
viewPager = (ViewPager) mView.findViewById(R.id.viewPager); ImageView view1 = new ImageView(ctx); view1.setBackgroundResource(R.drawable.test1); mViewList.add(view1); ImageView view2 = new ImageView(ctx); view2.setBackgroundResource(R.drawable.test2); mViewList.add(view2); ImageView view3 = new ImageView(ctx); view3.setBackgroundResource(R.drawable.test3); mViewList.add(view3); //设置适配器 adapter = new MhealthAdater(mViewList); viewPager.setAdapter(adapter); //默认显示的图片 currentItem = (int) (Integer.MAX_VALUE * 0.5); viewPager.setCurrentItem((int) (Integer.MAX_VALUE * 0.5)); //定时更新UI mhandler.sendEmptyMessageDelayed(0, 2000); viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { changeIcon(arg0); currentItem = arg0; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } //处于滑动状态时不轮播图片 @Override public void onPageScrollStateChanged(int arg0) { if (arg0 == 0) { isScroll = false; } else { isScroll = true; } } }); /* * 轮播图片 */ private Handler mhandler = new Handler() { @Override public void handleMessage(Message msg) { //递归调用自身 mhandler.sendEmptyMessageDelayed(0, 2000); if (isScroll) { } else { currentItem = currentItem + 1; viewPager.setCurrentItem(currentItem); changeIcon(currentItem); } } };
适配器
import java.util.List;import android.support.v4.view.PagerAdapter;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.view.ViewParent;import android.widget.ImageView;public class MhealthAdater extends PagerAdapter { private List<ImageView> mViewList; public MhealthAdater(List<ImageView> mViewList){ this.mViewList=mViewList; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub// container.removeView(mViewList.get(position)); }//初始化 @Override public Object instantiateItem(ViewGroup container, int position) { position %= mViewList.size(); ImageView view = mViewList.get(position); //如果View已经在之前添加到了一个父组件,则必须先remove,否则会抛出IllegalStateException。 ViewParent vp =view.getParent(); if (vp!=null){ ViewGroup parent = (ViewGroup)vp; parent.removeView(view); } container.addView(view); //add listeners here if necessary return mViewList.get(position); } @Override public int getCount() { // 设置view数量为最大值,实现左右无限轮播 return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { //推荐使用,View是否来自对象 return arg0==arg1; } }
0 0
- Android如何实现图片轮播
- Android 实现图片轮播
- 实现Android图片轮播
- Android实现图片轮播
- Android网络图片实现图片轮播
- 如何实现幻灯片效果/图片轮播
- 如何使用js实现图片轮播
- Android实现图片轮播切换
- Android ViewPager控件实现图片轮播
- Android ViewPager控件实现图片轮播
- Android ViewPager控件实现图片轮播
- Android实现Banner图片循环轮播
- Android---flipper实现图片轮播
- android ViewFlipper实现图片轮播
- Android图片轮播的实现总结
- RollViewPager实现android图片轮播效果
- Android 图片轮播Banner的实现
- Android ViewPager实现的图片轮播
- 关于递归
- How to Tune Performance of Informatica Lookup Transformation
- Android定向广播
- IOS学习-collectionView的自适应宽度和高度,固定列数
- error C2664: “GetModuleFileNameW”: 不能将参数 2 从“char [260]”转换为“LPWSTR”
- Android如何实现图片轮播
- css选择器中:first-child与:first-of-type的区别///CSS3伪类nth-of-type(n)用法详解
- input 只能输入正整数
- 获取某个方法执行的时间
- 基础窗口部件QWidget
- App自适应draw9patch不失真背景
- sha1加密知识
- Android UI控件应用分享:如何实现“带分割线并且Item为正方形”的GridView
- Setup Factory 9 关闭程序脚本