ViewPager的简单使用
来源:互联网 发布:显示器支架 知乎 编辑:程序博客网 时间:2024/04/24 09:27
转载请注明出处:http://blog.csdn.net/u012572172/article/details/39777607
ViewPager简单介绍:
很多主流的手机应用,当用户首次安装或者更新时,都会出现三四页的引导页,主要用来介绍应用的功能或者新增特效。
引导页就可以通过ViewPager来实现,下面就给读者介绍一种ViewPager最简单基本的用法。
这里简单模仿FlipBoard的引导页,效果图见文章结尾。
首先需要创建引导页的Activity 名为Guide.java 继承自 Activity。
关键代码如下:
public class Guide extends Activity{private ViewPager vp;private ViewPagerAdapter vpAdapter;private List<View> views;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.guide);initViews();}private void initViews() {LayoutInflater inflater = LayoutInflater.from(this);views = new ArrayList<View>();views.add(inflater.inflate(R.layout.fbone, null));views.add(inflater.inflate(R.layout.fbtwo, null));views.add(inflater.inflate(R.layout.fbthree, null));views.add(inflater.inflate(R.layout.fbfour, null));vpAdapter = new ViewPagerAdapter(views, this);vp = (ViewPager)findViewById(R.id.viewpager);vp.setAdapter(vpAdapter);}}
若想使用ViewPager 需要我们写一个Adapter 名为ViewPagerAdapter 继承自 PagerAdapter。
在这个Adapter内需要简单重写父类的部分方法。
方法 destroyItem 和 instantiateItem 就是我选择重写的。
关键代码如下:
public class ViewPagerAdapter extends PagerAdapter {private List<View> views;private Context context;public ViewPagerAdapter(List<View> views, Context context) {super();this.views = views;this.context = context;}@Overridepublic int getCount() {return views.size();}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(views.get(position));}@Overridepublic Object instantiateItem(ViewGroup container, int position) {container.addView(views.get(position));return views.get(position);}@Overridepublic boolean isViewFromObject(View view, Object obj) {return (view==obj);}}
java代码如上述,下面简单介绍xml代码。
前文已经讲述引导页的java代码,对应需要创建一个xml 名为guide.xml。
此处需要注意必须正确导入android.support.v4包,新版本的ADT自带。
代码如下:
<?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.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000"> </android.support.v4.view.ViewPager> </RelativeLayout>
写到此处框架就基本完成,只需要我们往里面添加每张引导页的视图。
在上文的Gude.java中的初始化视图方法initViews()中可以看出,我往里面添加了四个布局文件。
下面就只贴出其中一个xml代码,其余类似,只是改变了图片资源。
代码如下
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/fbone"/></LinearLayout>
尾注 为了简单调试 我修改了Android.Manifest.xml 将程序入口的Activity设为Guide。
效果图如下:
0 0
- ViewPager的简单使用
- viewpager的简单使用
- viewpager的简单使用
- ViewPager的简单使用
- ViewPager的简单使用
- viewpager的简单使用
- viewPager的简单使用
- ViewPager的简单使用
- ViewPager的简单使用
- Viewpager的简单使用
- ViewPager的简单使用
- 简单的ViewPager使用
- ViewPager的简单使用
- ViewPager的简单使用
- ViewPager的简单使用
- ViewPager的简单使用
- ViewPager的简单使用
- ViewPager的简单使用
- UVa 11027 - Palindromic Permutation (编码与解码+组合数)
- Spark视频第6期:无需等待的实时计算时代如何在90分钟内通过Spark Streaming掌握大数据实时计算和流处理?
- mysql数据库解决中文乱码问题
- Spark视频第7期:Deep in Spark Core:RDD、Job、Scheduling(如何一次性掌握Spark 绝大部分的精髓?)
- Spark视频第8期:Spark亚太研究院决胜大数据时代公益大讲坛:Machine Learning on Spark
- ViewPager的简单使用
- Spark视频第9期:Spark亚太研究院决胜大数据时代公益大讲坛:深入掌握图计算领域的屠龙刀Spark GraphX原理和实战
- jsp,js,outprintln中herf链接带参数写法
- UIDatePIcker
- Spark视频第10期:Spark亚太研究院决胜大数据时代公益大讲坛:Spark on Yarn
- DevOps究竟是什么?
- openGL从零学起之入门介绍
- Java Web开发之Servlet、JSP基础
- 我有来发癫了