绝对博文有用,请点赞,请留言,谢谢!~
直接看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
绝对博文有用,请点赞,请留言,谢谢!~