布局 

 <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.support.v4.view.ViewPager
android:id="@+id/ViewPager1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Container_PagerIndicator" >
</android.support.v4.view.ViewPager> <LinearLayout
android:id="@+id/Container_PagerIndicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/Container_bottom"
android:layout_gravity="bottom"
android:gravity="center_horizontal" > <ImageView
android:id="@+id/page0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:scaleType="matrix"
android:src="@drawable/page_now" /> <ImageView
android:id="@+id/page1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:contentDescription="@null"
android:scaleType="matrix"
android:src="@drawable/page" /> <ImageView
android:id="@+id/page2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:contentDescription="@null"
android:scaleType="matrix"
android:src="@drawable/page" /> <ImageView
android:id="@+id/page3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:contentDescription="@null"
android:scaleType="matrix"
android:src="@drawable/page" />
</LinearLayout> <LinearLayout
android:id="@+id/Container_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical" > <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/register" >
</Button> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/login" >
</Button>
</LinearLayout> </RelativeLayout>

 代码

 package com.wangzhen.myviewpager;

 import java.util.ArrayList;

 import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ContentView;
import com.lidroid.xutils.view.annotation.ViewInject; import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.content.Context;
import android.os.Bundle; @ContentView(R.layout.activity_main)
public class MainActivity extends ActionBarActivity implements
OnPageChangeListener {
Context mContext;
LayoutInflater mInflater; @ViewInject(R.id.ViewPager1)
private ViewPager ViewPager1;
@ViewInject(R.id.page0)
private ImageView page0;
@ViewInject(R.id.page1)
private ImageView page1;
@ViewInject(R.id.page2)
private ImageView page2;
@ViewInject(R.id.page3)
private ImageView page3; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
ViewUtils.inject(this);
mContext = this;
ViewPager1.setOnPageChangeListener(this);
InflateViewPager();
} /**
* 填充ViewPager数据
*/
private void InflateViewPager() { mInflater = LayoutInflater.from(mContext);
View view1 = mInflater.inflate(R.layout.pager1, null);
View view2 = mInflater.inflate(R.layout.pager2, null);
View view3 = mInflater.inflate(R.layout.pager3, null);
View view4 = mInflater.inflate(R.layout.pager4, null); // 将View装入List中
final ArrayList<View> views = new ArrayList<View>();
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4); // 填充Pager的数据适配器
PagerAdapter mAdapter = new PagerAdapter() { @Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
} @Override
public int getCount() {
return views.size();
} @Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView(views.get(position));
} @Override
public Object instantiateItem(View container, int position) {
((ViewPager) container).addView(views.get(position));
return views.get(position);
} }; ViewPager1.setAdapter(mAdapter);
} @Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub } @Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub } @Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
page0.setImageDrawable(getResources().getDrawable(
R.drawable.page_now));
page1.setImageDrawable(getResources().getDrawable(R.drawable.page));
page2.setImageDrawable(getResources().getDrawable(R.drawable.page));
page3.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 1:
page0.setImageDrawable(getResources().getDrawable(R.drawable.page));
page1.setImageDrawable(getResources().getDrawable(
R.drawable.page_now));
page2.setImageDrawable(getResources().getDrawable(R.drawable.page));
page3.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 2:
page0.setImageDrawable(getResources().getDrawable(R.drawable.page));
page1.setImageDrawable(getResources().getDrawable(R.drawable.page));
page2.setImageDrawable(getResources().getDrawable(
R.drawable.page_now));
page3.setImageDrawable(getResources().getDrawable(R.drawable.page));
break;
case 3:
page0.setImageDrawable(getResources().getDrawable(R.drawable.page));
page1.setImageDrawable(getResources().getDrawable(R.drawable.page));
page2.setImageDrawable(getResources().getDrawable(R.drawable.page));
page3.setImageDrawable(getResources().getDrawable(
R.drawable.page_now));
break; default:
break;
} } }

ViewPager欢迎页的更多相关文章

  1. ViewPager 滑动页(四)

    需求:在ViewPager 滑动页(三) 基础上,减少界面层级. 效果图: 图层数变更前: 图层数变更后: 主要代码实现: <?xml version="1.0" encod ...

  2. ViewPager实现页卡的3种方法(谷歌组件)

    ----方法一:---- 效果图: 须要的组件: ViewPager+PagerTabStrip 布局文件代码: <!--xmlns:android_custom="http://sc ...

  3. ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)

    效果图: 添加依赖包: compile ‘com.android.support:design:‘ 布局文件: <?xml version="1.0" encoding=&q ...

  4. ViewPager 滑动页(三)

    需求:滑动展示页,能够使用本地数据,及获取服务器数据进行刷新操作,当滑动到最后一页时,结束当前activity,进入下一个activity: 效果图: 实现分析: 1.目录结构: 代码实现: 1.Po ...

  5. Android ViewPager欢迎页+引导页+进入首页

    import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences ...

  6. ViewPager 滑动页(二)

    需求:滑动展示页,能够使用本地数据,及获取服务器数据进行刷新操作,并实现页面自动切换: 效果图: 实现分析: 1.目录结构: 代码实现: 1.PosterView.java package com.j ...

  7. ViewPager 滑动页(一)

    需求:滑动展示页,能够使用本地数据,及获取服务器数据进行刷新操作: 效果图: 实现分析: 1.目录结构: 代码实现: 1.fragment_main.xml <RelativeLayout xm ...

  8. ViewPager单页显示3个item

    原文地址:https://github.com/hongyangAndroid/MagicViewPager/wiki MagicViewPager 单页显示3个Item的ViewPager炫酷切换效 ...

  9. 备忘-Android ViewPager 子页监听事件

    @Override public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(mListViews ...

随机推荐

  1. QT学习:入门篇(三)

    头文件: #ifndef CChatDisplaySet_h #define CChatDisplaySet_h #include "QtGui/QDialog" #include ...

  2. tomcat可以访问到软链接设置

    tomcat/conf/context.xml设置<Context allowLinking="true"> 就可以啦.

  3. linux 添加 $path

    # vim /etc/profile在文档最后,添加:export PATH="/usr/local/src/bin:$PATH"保存,退出,然后运行:#source /etc/p ...

  4. 03 - 替换vtkDataObject中的GetProducerPort()方法 VTK 6.0 迁移

    VTK6 引入了许多不兼容的变.其中之一是删除vtkDataObject中所有有关管道的方法.其中的一个方法就是GetProducerPort(). 一般,先前使用这个方法如下例子: vtkPolyD ...

  5. rnqoj-28-合唱队形-最长上升子序列

    想当年大一的时候,一个最长上升子序列的问题使得我的罚时上升了不少....当年还是图样啊 这道题目本质就是求最长上升子序列 #include<stdio.h> #include<str ...

  6. bzoj2244[SDOI2011]拦截导弹

    http://www.lydsy.com/JudgeOnline/problem.php?id=2244 第$i$个导弹看成一个三元组$(i,h_i,v_i)$ 其实就是最长上升子序列的问题. 我们分 ...

  7. HDOJ(HDU) 1407 测试你是否和LTC水平一样高(暴力)

    Problem Description 大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上! 你的任务是: 计算方程x^2+y^2+z^2= num的一个正整数 ...

  8. HDOJ 1393 Weird Clock(明白题意就简单了)

    Problem Description A weird clock marked from 0 to 59 has only a minute hand. It won't move until a ...

  9. JAVA的四种引用,强弱软虚用到的场景

    1.强引用 最常用的引用类型,如Object object = new Object(),只要强引用存在,GC必定 不回收,即使当前内存空间不足,jAVA虚拟机宁愿抛出OutofMemoryError ...

  10. synchronized 与 Lock 的那点事

    最近在做一个监控系统,该系统主要包括对数据实时分析和存储两个部分,由于并发量比较高,所以不可避免的使用到了一些并发的知识.为了实现这些要求,后台使用一个队列作为缓存,对于请求只管往缓存里写数据.同时启 ...