android 图片轮播
来源:互联网 发布:我睡过的那些知乎女神 编辑:程序博客网 时间:2024/05/18 22:56
android 图片轮播
1.在XML文件中,添加ViewPager控件。
<android.support.v4.view.ViewPager android:id="@+id/adv_viewPager" android:layout_width="match_parent" android:layout_height="180dp" />
2.自定义类继承PagerAdapter
public class MyPagerAdapter extends PagerAdapter { private static final String TAG = MyPagerAdapter.class.getSimpleName(); private final Context mContext; private final List<ImageView> images; public MyPagerAdapter(Context context, @NotNull List<ImageView> images) { this.images = images; mContext = context; } @Override public int getCount() { return images.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view.equals(object); } /** * @param container viewpager * @param position 当前位置 */ @Override public Object instantiateItem(ViewGroup container, int position) { Log.i(TAG, "================instantiateItem: " + position); ImageView imageView = images.get(position); ViewParent parent = imageView.getParent(); ViewGroup group = (ViewGroup) parent; if (group != null) { // 判断imageView的父容器中是否包含该控件,包含的话则移除。否则会报IllegalStateException group.removeView(imageView); } container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { Log.i(TAG, "================destroyItem: " + position); }}
3.MainActivity中,使用handler延时实现图片轮播效果
private ViewPager pager; private int[] advImages = new int[]{R.mipmap.a, R.mipmap.b, R.mipmap.c, R.mipmap.d, R.mipmap.e}; private List<ImageView> lists; private int curItem = 0; // 当前页面 boolean isAutoPlay = true; private MyPagerAdapter myPagerAdapter; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: if (curItem == 0) { pager.setCurrentItem(curItem, false); // 从末跳到首页时,不显示翻页动画 } else { pager.setCurrentItem(curItem); } curItem = (curItem + 1) % advImages.length; handler.sendEmptyMessageDelayed(1, 3000); break; } } }; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_viewpager, container, false); pager = (ViewPager) view.findViewById(R.id.adv_viewPager); lists = new ArrayList<>(); for (int i = 0; i < advImages.length; i++) { ImageView imageView = new ImageView(getContext()); imageView.setImageResource(advImages[i]); lists.add(imageView); } myPagerAdapter = new MyPagerAdapter(getContext(), lists); pager.setAdapter(myPagerAdapter); handler.sendEmptyMessage(1); return view; }
1 0
- Android图片轮播
- Android 图片轮播
- android图片轮播
- Android图片轮播
- android 图片轮播
- android 图片轮播
- android 图片轮播
- Android图片轮播
- Android 图片轮播
- 【Android】android图片轮播
- ANDROID轮播广告图片
- Android 实现图片轮播
- Android图片轮播组件
- android galley图片轮播
- Android 图片轮播控件
- 实现Android图片轮播
- Android实现图片轮播
- android 图片轮播 viewpager
- js刷新页面方法大全
- 笔记片段
- 基于TCP协议的Socket通信 实现用户登录 以及服务端的相应
- Linux命令-ls(查看文件或目录的一些信息)
- Android触摸事件传递机制及viewpager嵌套fragment冲突处理
- android 图片轮播
- NYOJ - 206 - 矩形的个数()
- 第6课:Spark Streaming源码解读之Job动态生成和深度思考
- js判断是否微信浏览器打开,并执行某些操作
- one usable vimrc
- 在Java中连接字符串时是使用+号还是使用StringBuilder
- 解决linux 下打开windows的txt文件乱码问题
- Java合并文件下多个文件
- jad反编译软件安装 Kepler Service Release 2