Android开发-自定义View-AndroidStudio(五)ViewPager初体验

来源:互联网 发布:数据库工程师培训机构 编辑:程序博客网 时间:2024/05/16 06:29
转载请注明出处:http://blog.csdn.net/iwanghang/
绝对博文有用,请点赞,请留言,谢谢!~

直接看GIF效果和代码:

MainActivity.java:
package com.iwanghang.viewpager;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    private ViewPager viewpager;    private TextView tv_title;    private LinearLayout ll_point_group;    // 因为大家都了解ListView,先说一下ListView的使用,然后我们对比着,看一下ViewPager的使用    // ListView的使用    // 1、在布局文件中定义ListView    // 2、在代码中实例化ListView    // 3、准备数据    // 4、设置适配器(BaseAdapter)-item布局-绑定数据    // ArrayList不安全但是效率高    // 这里是用于准备数据,这个就是图片数据的集合    private ArrayList<ImageView> imageViews;    // 图片资源ID集合    private final int[] imageIds = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e};    // 图片标题集合    private final String[] imageDescriptions = {"元旦好","新年好","大家好","哈哈哈","嘻嘻嘻"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewpager = (ViewPager) findViewById(R.id.viewpager);        tv_title = (TextView) findViewById(R.id.tv_title);        ll_point_group = (LinearLayout) findViewById(R.id.ll_point_group);        // ViewPager的使用        // 1、在布局文件中定义ViewPager        // 2、在代码中实例化ViewPager        // 3、准备数据        // 4、设置适配器(PagerAdapter)-item布局-绑定数据        imageViews = new ArrayList<>();        for (int i = 0; i < imageIds.length;i++) {            ImageView imageView = new ImageView(this);            // 设置src会按比例填充,但是设置background会拉伸填充            // 我们要的效果是拉伸填充,所以这里使用setBackgroundResource            imageView.setBackgroundResource(imageIds[i]);            // 添加到集合中            imageViews.add(imageView);        }        viewpager.setAdapter(new MyPagerAdapter());    }    class MyPagerAdapter extends PagerAdapter{        /**         * @return 图片的总数         */        @Override        public int getCount() {            return imageViews.size();        }        /**         * 相当于getView方法         * @param container ViewPager自身         * @param position 当前实例化页面的位置         * @return         */        @Override        public Object instantiateItem(ViewGroup container, int position) {            ImageView imageView = imageViews.get(position);            container.addView(imageView); // 把图片添加到ViewPager容器中            return imageView;        }        /**         * 比较view和object是否是同一个实力         * @param view 页面         * @param object instantiateItem返回的结果         * @return         */        @Override        public boolean isViewFromObject(View view, Object object) {            if (view == object) {                return true;            }else {                return false;            }        }        /**         * 释放资源         * @param container viewpager         * @param position 要释放的位置         * @param object 要释放的页面         */        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }    }}



activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><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"    tools:context="com.iwanghang.viewpager.MainActivity">    <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="match_parent"        android:layout_height="200dp"/>    <LinearLayout        android:background="#44000000"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_alignBottom="@+id/viewpager"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true">        <TextView            android:id="@+id/tv_title"            android:padding="2dp"            android:text="iwanghang"            android:textStyle="bold"            android:textColor="#ffffff"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_horizontal" />    </LinearLayout>    <LinearLayout        android:id="@+id/ll_point_group"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_gravity="center_horizontal">    </LinearLayout></RelativeLayout>



转载请注明出处:http://blog.csdn.net/iwanghang/



欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式

微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com



绝对博文有用,请点赞,请留言,谢谢!~

1 0
原创粉丝点击