ViewPager 基本方式加载view
1.新建view_pager.xml

<?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="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</RelativeLayout>

2.新建ViewPagerAdapter类,用于ViewPager布局的实例加载适配器;

public class ViewPagerAdapter extends PagerAdapter{
private Context context;
private List<View> viewlist;
public ViewPagerAdapter( List<View> views,Context context) {
this.context = context;
this.views = views;
}
//重新4个方法
//getCount()返回List<View>的size:
@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}
//instantiateItem():将当前view添加到ViewGroup中,并返回当前View
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
//destroyItem():删除当前的View;
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
//isViewFromObject判断当前的View 和 我们想要的Object(值为View) 是否一样;返回 trun / false;
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return (arg0 == arg1);
} }

3.创建Guide类,获取View对象,再将view对象放在List<view>中,然后用List<view>放在适配器ViewPagerAdapter中,最后获取ViewPager并为其

public class Guide extends Activity{
private List<View> listView;
private ViewPager viewPager;
private ViewPagerAdapter vpAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.view_pager);
init();
}
private void init() {
LayoutInflater inflater = LayoutInflater.from(this);
listView = new ArrayList<View>();
//获取View对象
View view1 = inflater.inflate(R.layout.view_pager_img1, null);
View view2 = inflater.inflate(R.layout.view_pager_img2, null);
View view3 = inflater.inflate(R.layout.view_pager_img3, null);
View view4 = inflater.inflate(R.layout.view_pager_img4, null);
//view对象放在List<view>中
listView.add(view1);
listView.add(view2);
listView.add(view3);
listView.add(view4);
//List<view>放在适配器ViewPagerAdapter中
vpAdapter = new ViewPagerAdapter(listView, this);
//获取ViewPage,设置适配器;
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(vpAdapter);
}
}

4. 创建view_pager_img.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"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/guide_background2"/>
</LinearLayout>

ViewPager 基本方式加载view的更多相关文章
- MVC Ajax Helper或jQuery异步方式加载部分视图
Model: namespace MvcApplication1.Models { public class Team { public string Preletter { get; set; } ...
- 使用SDWebImage淡入淡出的方式加载图片
使用SDWebImage淡入淡出的方式加载图片 效果: 请通过以下方式下载源码: 找到它修改文件的地方: 以下是使用源码: // // ViewController.m // SDWebImageFa ...
- android Viewpager取消预加载及Fragment方法的学习
1.在使用ViewPager嵌套Fragment的时候,由于VIewPager的几个Adapter的设置来说,都会有一定的预加载.通过设置setOffscreenPageLimit(int numbe ...
- 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager
问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...
- java基础-jdbc——三种方式加载驱动建立连接
String url = "jdbc:mysql://localhost:3306/student?Unicode=true&characterEncoding=utf-8" ...
- 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据
[源码下载] 重新想象 Windows 8 Store Apps (54) - 绑定: 增量方式加载数据 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 绑定 通过实 ...
- UIStoryboard类介绍(如何从Storyboard中加载View Controller)
如何从Storyboard中加载View Controller? 1. 首先了解下UIStoryboard类: @class UIViewController; @interface UIStoryb ...
- 动态链接库知识点总结之三(如何以显示的方式加载DLL)
总结一下如何显示加载方式加载DLL, 首先,我们新建一个win32项目,选择dll,空项目,再添加一个源文件,一个模块定义文件(.def),具体如下图.(详细方法已经在前两篇文章中讲述,如有不懂,打开 ...
- 一步一步重写 CodeIgniter 框架 (6) —— 实现在控制器Controller中加载View
1. 控制器将模型类获得的数据,传递给视图进行显示,所以视图必须负责接收数据,另外重要的一点是当模型和视图分开后,多个模型的数据可以传递给一个视图进行展示,也可以说一个模型的数据在多个不同的视图中进行 ...
随机推荐
- [ios][swift]Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)
自己写的不一定是最好的! 轮子:http://www.hangge.com/blog/cache/detail_765.html
- python7 静态方法、类方法、属性方法 ;反射;异常处理
#-*- coding:utf8 -*- # 静态方法@staticmethod # 静态方法(当eat变成静态方法后,再通过实例调用时就不会自动把实例本身当作一个参数传给self了.) clas ...
- Python 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...
- c#之线程随机
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- DZY Loves Chemistry 分类: CF 比赛 图论 2015-08-08 15:51 3人阅读 评论(0) 收藏
DZY Loves Chemistry time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Tiling 分类: POJ 2015-06-17 15:15 8人阅读 评论(0) 收藏
Tiling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8091 Accepted: 3918 Descriptio ...
- 浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树
http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的 ...
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
一.前言 在之前已经详细介绍了Android中的一种视频数据源:Camera,不了解的同学可以点击进入:Android中Camera使用详解 ,在这篇文章中我们介绍了如何采集摄像头的每一帧数据,然后进 ...
- EF 增删改查
StudentEntities entities = new StudentEntities(); //初始化对象 Register register = new Register(); #regio ...
- Json 入门例子【3】
Javascript 和Jquery 通过ID 获取值. <script> var txt1 = [{ "CityId": 18, "CityName&quo ...