
Android使用ViewPager实现图片轮播系列之一:简单实现
发布日期:2021-05-14 17:54:45
浏览次数:20
分类:精选文章
本文共 2987 字,大约阅读时间需要 9 分钟。
使用ViewPager实现简单图片轮播
1. 布局文件
在Android开发中,布局文件是定义UI组件的核心文件。我们可以通过Android Studio的布局编辑器来设计布局文件。默认的布局文件可能会包含一些占位符或自定义视图组件,这些都是和ViewPager相关的。以下是典型的布局文件内容:
这个布局文件中包含了ViewById和ViewPager组件。如果你刚开始接触Android开发,可能需要花一些时间来理解这些标签的含义和使用方法。
2. VPTest1Activity(Activity类)
接下来,我们来看一下VPTest1Activity
。这是放置ViewPager组件的主活动,主要负责初始化和管理ViewPager的内容。
public class VPTest1Activity extends AppCompatActivity { @BindView(R.id.viewPager) ViewPager viewPager; private int[] imagePaths = { R.mipmap.scenery1, R.mipmap.scenery2, R.mipmap.scenery3, R.mipmap.scenery4, R.mipmap.scenery5 }; private ArrayListimageIds = new ArrayList<>(); private MyPagerAdapter pagingAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vptest1); ButterKnife.bind(this); initData(); } private void initData() { ViewPager.setCurrentItem(0); setDataToViewPager(); } private void setDataToViewPager() { imageIds.clear(); for (int imagePath : imagePaths) { ImageView imageView = new ImageView(this); imageView.setImageResource(imagePath); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageIds.add(imageIds.size()); imageViewList.add(imageView); } if (!imageIds.isEmpty()) { pagingAdapter = new MyPagerAdapter(imageViewList); viewPager.setAdapter(pagingAdapter); } } private class MyPagerAdapter extends PagerAdapter { @Override public int getCount() { return imageIds.size(); } @Override public Object instantiateItem(ViewGroup container, final int position) { ImageView imageView = imageIds.get(position); ViewGroup parent = (ViewGroup) imageView.getParent(); if (parent != null) { parent.removeView(imageView); } container.addView(imageView, 0,new LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) ); return imageView; } @Override public void destroyItem(View view, int num, Object object) { if (view.getParent() != null) { ((ViewGroup)view.getParent()).removeView(view); } } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } }}
在这个类中,viewPager
是我们定义的ViewPager组件,imagePaths
数组中包含了需要展示的图片资源ID。setDataToViewPager()
方法负责将这些图片资源加载到ViewPager中。
3. 通用技巧
- 学习ViewPager控件时,记住它是一个基于滑动的视图容器,常用于实现图片轮播、卡片翻页等效果。
- 在使用ViewPager时,确保所有子页面的宽度一致,否则可能会导致布局错位。
- 如果你需要让ViewPager自动循环滚动,可以通过设置ViewPager的
setPageTransformer
方法来实现。
- 在
PagerAdapter
中,注意管理子页面的生命周期,避免内存泄漏。
通过这些技巧,你可以灵活地使用ViewPager来实现各种动态页面展示需求。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月23日 17时20分30秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
重载和重写的区别:
2019-03-07
搭建Vue项目步骤
2019-03-07
账号转账演示事务
2019-03-07
idea创建工程时错误提醒的是architectCatalog=internal
2019-03-07
SpringBoot找不到@EnableRety注解
2019-03-07
简易计算器案例
2019-03-07
在Vue中使用样式——使用内联样式
2019-03-07
Explore Optimization
2019-03-07
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
2019-03-07
2020Java程序设计基础(华东交通大学)章节测试免费满分答案
2019-03-07
解决数据库报ORA-02289:序列不存在错误
2019-03-07
map[]和map.at()取值之间的区别
2019-03-08
成功解决升级virtualenv报错问题
2019-03-08
【SQLI-Lab】靶场搭建
2019-03-08
【Bootstrap5】精细学习记录
2019-03-08
LeetCode197.打家劫舍
2019-03-08
A simple problem HDU-2522 【数学技巧】
2019-03-08
Struts2-从值栈获取list集合数据(三种方式)
2019-03-08