Android ViewPager使用方法介绍
程序员文章站
2022-06-09 15:54:54
...
android-support-v4.jar 是谷歌提供给我们的一个兼容低版本安卓设备的软件包,里面包囊了只有在 Android 3.0 以上可用的API。而 ViewPager 就是其中之一。利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。
1.ViewPager -- 基本用法
ViewPager 的基本用法可以分为以下步骤:
- 在 layout 文件中定义一个 ViewPager 组件;
- 在 Activity(或Fragment等)中取得 ViewPager 的引用;
- 为 ViewPager 设置适配器;
- [为 ViewPager 设置滑动特效];
- [为 ViewPager 设置监听器]。
其中最后两步是可选的,但如果没有最后两步,那我们的 ViewPager 就仅仅是一个普普通通的 ViewPager 了。
①布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_centerInParent="true"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:clipChildren="false"></android.support.v4.view.ViewPager>
</RelativeLayout>
②activity中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_many_picture);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
//设置ViewPager中两页之间的距离
viewPager.setPageMargin(80);
// 设置预加载的页数,我们知道默认情况下这个参数为1,也就是左右各预加载一页,但是我们这里要让左右各预加载两页
viewPager.setOffscreenPageLimit(3);
List<Integer> list = new ArrayList<>();
list.add(R.mipmap.bg_splash1);
list.add(R.mipmap.bg_splash2);
list.add(R.mipmap.bg_splash3);
list.add(R.mipmap.bg_splash4);
ManyPictureAdapter adater = new ManyPictureAdapter(this, list);
viewPager.setAdapter(adater);
viewPager.setPageTransformer(false, new ScaleTransformer());
}
③自定义viewpager的adapter
public class ManyPictureAdapter extends PagerAdapter {
private List<Integer> list;
private Context context;
public ManyPictureAdapter(Context context, List<Integer> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv = new ImageView(context);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setImageResource(list.get(position));
container.addView(iv);
return iv;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
下一篇: 深入理解“软链接”和“硬链接”的区别?
推荐阅读
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
Android仿IOS ViewPager滑动进度条
-
Android ViewPager实现图片轮翻效果
-
Android自定义View Flyme6的Viewpager指示器
-
Android AnalogClock简单使用方法实例
-
Android中html.fromhtml的使用方法
-
Android中viewPager使用指南
-
android之ContentResolver与ContentProvider介绍
-
Android小米推送简单使用方法
-
fastjson 使用方法详细介绍