`
xitong
  • 浏览: 6199163 次
文章分类
社区版块
存档分类
最新评论

Android界面设计之:使用水平视图切换

 
阅读更多

Android界面设计之:使用水平视图切换

 在本文中,将介绍如何使用Android中提供的兼容包Android compatibility package编写一个横向水平分页功能的小应用。Android compatibility package为Android在2011年初发布的一个功能兼容包,该兼容开发包主要包含了Android最新平台上的最酷的特性,这样的话,当开发者在为旧版本的Android设备开发程序的时候,就可以使用这个兼容开发包来使用最新的Android特性,而不用自己重新开发, 从而减轻了开发者的开发任务。

  在兼容包中,提供了viewPager组件,可以很方便地开发水平view切换的功能。而水平视图切换的功能,可以方便地让用户通过手指从右向左滑动,就可以轻易切换不同的视图。本文的读者为对Android 开发有初步认识的开发者。

  概述

  在Android compatibility package中,有一系列的类可以用来实现水平视图的切换。其中的ViewPager控件(android.support.v4.view.ViewPager)提供了水平方向滑动切换视图的功能,可以用在象图库等需要大量展示不同视图的应用中。而PageAdapter(android.support.v4.view.PagerAdapter)类则是用来定义数据,这些数据将会显示在ViewPager控件中。下面将会以一个简单例子来讲解如何使用该控件。本文的代码可以在http://android-mt-tutorials.googlecode.com/svn/trunk/SimpleViewPager中下载。

  步骤一 建立Android项目工程

  先使用Eclipse,建立一个Android Project,应用名称为SimpleViewPager,Activity的名称为SimpleViewPagerActivity。选用的Android SDK版本为2.2或以上。

  步骤二 安装Android compatibility package

  要使用Android compatibility 包,需要首先通过Android SDK Manager进行下载。目前其最新的版本为Android Compatibility package v4, Revision 3;,在通过Android SDK Manager下载安装后,要为当前的Android项目增加其Android compatibility功能,我们可以通过在鼠标右键点击已建立的项目,在弹出的菜单中,选择“Android Tools”-à” AddCompatibility Library”即可。此时会在项目的库文件中看到有android-support-v4.jar,表示已经成功在项目中增加了对应的文件。

  步骤三 定义ViewPager

  接下来,需要在界面布局中增加ViewPager控件。在我们的例子中,在main.xml的布局文件中,增加如下代码,要注意的是ViewPager控件必须使用完整的全称,即:android.support.v4.view.ViewPager。

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent">

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:id="@+id/myfivepanelpager"/>

  步骤四 创建不同的页面文件

  在这个示例程序中,我们将展示5个不同的界面,每个界面都有不同的文字和图片,当然读者可以自行进行扩展。这5个不同的界面文件的名称分别为:farleft.xml, left.xml,middle.xml, right.xml, 和 farright.xml,具体的代码见附件,下面是5个文件的布局界面图:

Android 界面设计之:使用水平视图切换功能

  要注意的是,在这些页面文件中,不要忘记在每个页面的imageview控件中,都要加上onclick事件,因为下文中的PageAdapter会在运行时调用这些页面。

  步骤五 实现自定义的PageAdapter

  ViewPager需要使用数据适配器去填充数据,而这些数据来源于我们上一步已经建立并命名好的5个页面布局文件。而PageAdapter则是对应的数据适配器,

  我们要继承PageAdapter类,实现自己的数据适配器,假设自定义的PageAdapter的名称为MyPagerAdapter,因此要实现以下的几个方法。

  首先,需要定义切换页面的个数,在本例中,需要有5个页面要显示。所以,可以在getCount()方法中定义,如下:

  private class MyPagerAdapter extends PagerAdapter {

  @Override

  public int getCount() {

  return 5;

  }

  ………

  }

  接下来,需要实现instantiateItem()方法,在这个方法中,对需要进行水平切换的页面进行了加载和初始化。代码如下:

  public Object instantiateItem(View collection, int position) {

  LayoutInflater inflater = (LayoutInflater) collection.getContext()

  .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

  int resId = 0;

  switch (position) {

  case 0:

  resId = R.layout.farleft;

  break;

  case 1:

  resId = R.layout.left;

  break;

  case 2:

  resId = R.layout.middle;

  break;

  case 3:

  resId = R.layout.right;

  break;

  case 4:

  resId = R.layout.farright;

  break;

  }

  View view = inflater.inflate(resId, null);

  ((ViewPager)collection).addView(view, 0);

  return view;

  }

  其中,position是定义当前的视图的位置序号,当position为0时,加载的应该是第一个页面,如此类推,并且使用了LayoutInflater服务中的inflate方法加载指定的视图,并且将其加入到ViewPager的视图集合中去(通过如下的两行代码实现:)

  View view = inflater.inflate(resId, null);

  ((ViewPager)collection).addView(view, 0);

  下面这个图,则简要说明了5个视图中的各自POSITION的位置。

Android 界面设计之:使用水平视图切换功能

  最后,要记得实现destroyItem方法,在这个方法中,要将已经不再显示的视图从ViewPager的视图集合中移除掉。代码如下:

  public void destroyItem(View arg0, int arg1, Object arg2) {

  ((ViewPager) arg0).removeView((View) arg2);

  }

  步骤6 绑定到ViewPager

  这是最后一步,就是要将刚才编写的自定义PageAdapter绑定到ViewPager控件中去,代码如下:

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  MyPagerAdapter adapter = new MyPagerAdapter();

  ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);

  myPager.setAdapter(adapter);

  myPager.setCurrentItem(2);

  }

  可以看到 myPager.setAdapter(adapter);直接将自定义的MyPagerAdapter适配器实例跟ViewPager控件相绑定,并通过setCurrentItem方法设置初始化显示的是第2个视图界面(在我们的例子中是一张猴子的照片)。最后,如下图所示,就完成了一个能从右到左滑动的图片展示应用了,是不是很简单呢?

Android 界面设计之:使用水平视图切换功能


分享到:
评论

相关推荐

    android下实现视图切换

    android 视图 切换 workspace 模仿Launcher

    Android 仿小米日历周月视图切换

    周视图,月视图都支持左右切换。产品大大要求只只展示最近3周,故日历只展示3月,界面未优化,只是测试demon

    按钮切换两个视图

    是一个按钮切换两个控制器的demo,两个控制器之间可以自定义

    Android-一个通用状态切换视图

    用于切换不同View的各种状态,默认包含Content,Empty,Fail,Loading 4个状态,并且支持添加其他状态,并且处理了Loading显示时间很短立刻切换到其他状态时看起来好像Loading界面闪了一下

    两行代码搞定Android视图扩散切换效果~.zip

    两行代码搞定Android视图扩散切换效果~.zip,查看Android的Spread TranslationController。

    Android界面切换出现短暂黑屏的解决方法

    这种问题一般是因为一个Activity启动之后在显示视图之间时间太长导致的。 1、优化方式可以通过精简layout文件、多线程处理数据载入等。 2、但是有些Activity的layout文件可能比较大,如果不能动态载入,在显示之前...

    Android实现加载状态视图切换效果

    关于Android加载状态视图切换,具体内容如下 1.关于Android界面切换状态的介绍 怎样切换界面状态?有些界面想定制自定义状态?状态如何添加点击事件?下面就为解决这些问题! 内容界面 加载数据中 加载数据...

    Android-InfiniteCards:Android的无限卡切换用户界面,支持自定义动画自定义实现神奇动效的卡片切换视图

    无限卡 适用于Android的无限卡切换UI,支持自定义动画可自定义动效的卡片切换视图()颤振版本屏幕截图通过JitPack进行Gradle 将其添加到存储库末尾的root build.gradle中: allprojects {repositories {.....

    Android程序设计基础

    通过逐渐在游戏中添加特性,你将学习Android编程的许多方面,包括用户界面、多媒体和Android生命周期。..  第一部分中将首先介绍Android,内容涉及如何安装Android模拟器,如何使用IDE(Intergrated Development ...

    Android期末设计报告.docx

    Android期末设计报告 Android期末设计报告全文共9页,当前为第1页。Android期末设计报告全文共9页,当前为第1页。教学单位 计算机学院 Android期末设计报告全文共9页,当前为第1页。 Android期末设计报告全文共9页,...

    android开发资料大全

    Android中利用ViewPager实现视图切换 Android泡泡聊天界面的源码实现 android 实现EditText震动效果 Touch Index Bar (有锤子有真相) Android数据库最基础的一个例子(本人已测试,可以运行) 为launcher添加一个...

    Android入门到精通源代码.

    2.5 使用Eclipse开发Android应用程序 2.5.1 使用Eclipse创建Android项目 2.5.2 Eclipse中Android项目架构 2.5.3 Eclipse中Android项目的调试和运行 第3章 Android中的Activity 3.1 Activity的作用 3.2 单Activity的...

    Android Studio实现个人记账系统源码.zip

    项目重要技术点: 1-绘制布局,掌握android基本view控件的属性和使用 2-熟练掌握Activity页面展示,跳转和传值 3-使用碎片加载界面,滑动视图切换页面 4-自定义对话框 5-自定义软键盘绘制和使用 6-列表视图以及网格...

    Android TabHost实现屏幕UI窗口的TAB切换功能.rar

    Android TabHost实现屏幕UI窗口的TAB切换功能,实现的过程:声明TabHost对象、取得TabHost对象,为TabHost添加标签,新建一个newTabSpec(newTabSpec),设置其标签和图标(setIndicator),设置内容(setContent),然后...

    Android 足球游戏:疯狂足球 源码含中文注释.rar

    Android 足球游戏:疯狂足球 源码含中文注释,游戏运行界面如视图所示,最关键的是源代码,每一个代码文件中都有详细的文件说明,这个足球游戏代码包括了AI的后台线程、继承自Thread类的线程类、Bonus父类、根据概率...

    基于Android Studio开发的个记账工具APP源码,Android 个人记账APP源码

    项目重要技术点: 1-绘制布局,掌握android基本view控件的属性和使用 2-熟练掌握Activity页面展示,跳转和传值 3-使用碎片加载界面,滑动视图切换页面 4-自定义对话框 5-自定义软键盘绘制和使用 6-列表视图以及网格...

    android开发揭秘PDF

    2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命...

    Android实现页面翻转和自动翻转功能

    2. 先写好布局文件,这里用到了ViewFlipper类,用于切换视图,毕竟ViewFlipper见得少,先介绍一下。 在xml布局中的方法介绍: android:autoStart: 设置自动加载下一个View  android:flipInterval:设置View之间切换...

    详解Android应用中使用TabHost组件进行布局的基本方法

    getHost()获取前提 : 设置了该id之后, 在Activity界面可以使用 getHost(), 获取这个TabHost 视图对象; 示例 : 代码如下: <tabhost android:id=”@android:id/tabhost” android:layout_height=”match_parent”

Global site tag (gtag.js) - Google Analytics