前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【ViewPager的学习】一、简单使用

【ViewPager的学习】一、简单使用

作者头像
张拭心 shixinzhang
发布2022-11-30 16:43:13
2620
发布2022-11-30 16:43:13
举报
文章被收录于专栏:拭心的安卓进阶之路

ViewPager就不多介绍,主要用于手机引导页面、软件导航、轮播图片等情况。

使用它需要引用一个库:android-support-v4.jar,add to build path。

同ListView一样,它也需要设置Adapter管理数据。

首先通过一个ViewPager使用的简单例子开始ViewPager的学习:

代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="200dp" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/viewpager"
        android:background="#33000000"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/image_desc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/app_name"
            android:textColor="@android:color/white"
            android:textSize="18sp" />

        <LinearLayout
            android:id="@+id/point_group"
            android:layout_width="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

Activity:

代码语言:javascript
复制
public class MainActivity extends Activity {

	private ViewPager viewPager;
	// 图片资源ID
	private final int[] imageIds = { R.drawable.a, R.drawable.b, R.drawable.c,	R.drawable.d, R.drawable.e };
	private ArrayList<ImageView> imageList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
  
        imageList = new ArrayList<ImageView>();
        
        for (int i = 0; i < imageIds.length; i++) {
        	ImageView im = new ImageView(this);
			im.setBackgroundResource(imageIds[i]);
			imageList.add(im);		
		}
//同ListView一样,ViewPager也需要Adapter管理数据
        viewPager.setAdapter(new MyAdapter());
        
    }

/**
*	自定义Adapter,必须实现这4个方法
*/
    private class MyAdapter extends PagerAdapter{

    	/**
    	 * 返回viewPager元素数量
    	 */
		@Override
		public int getCount() {
			return imageList.size();
		}

		/**
		 * 实例化一个元素
		 */
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			
			container.addView(imageList.get(position));
			//container = imageIds[position];
//			return super.instantiateItem(container, position);
			return imageList.get(position);
		}
    	
		/**
		 * 判断是否相等
		 */
		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			// TODO 自动生成的方法存根
			return arg0 == (View)arg1;
		}

		/**
		 * 销毁元素
		 */
		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			// TODO 自动生成的方法存根
			container.removeView((View) object);
			object = null;
		}

		
    }
   
}

这样,ViewPager的简单demo就完成了,效果如下:

【ViewPager的学习】二、添加图片描述及指示点动态改变

【ViewPager的学习】三、实现自动循环切换

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档