引用:http://www.apkbus.com/android-18384-1-1.html

为ViewFlipper视图切换增加动画Android中实现视图随手势移动中实现了视图随手势切换,现在Android中Compatibility Package提供了ViewPager可以更简便的实现视图切换,实现的效果如下:

<ignore_js_op>

效果和ViewGroup一样,但是实现过程更简单.新版的Android Market和Google+都是用了ViewPager.

<ignore_js_op>

说一下实现过程:

工程目录如下:

<ignore_js_op>

MyPagerActivity的onCreate方法如下:

  1. @Override
  2. public void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.main);
  5. initPageContent();
  6. awesomeAdapter = new MyPagerAdapter();
  7. awesomePager = (ViewPager) findViewById(R.id.awesomepager);
  8. awesomePager.setAdapter(awesomeAdapter);
  9. }

复制代码

其中main.xml布局文件引入了ViewPager:

  1. <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:orientation="vertical"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:background="#a4c639">
  6. <android.support.v4.view.viewpager
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent"
  9. android:id="@+id/awesomepager"/>

复制代码

MyPagerAdapter继承了PagerAdapter:

  1. private class MyPagerAdapter extends PagerAdapter{
  2. @Override
  3. public int getCount() {
  4. return imageS.length;
  5. }
  6. /**
  7. * Create the page for the given position.  The adapter is responsible
  8. * for adding the view to the container given here, although it only
  9. * must ensure this is done by the time it returns from
  10. * {@link #finishUpdate()}.
  11. *
  12. * @param container The containing View in which the page will be shown.
  13. * @param position The page position to be instantiated.
  14. * @return Returns an Object representing the new page.  This does not
  15. * need to be a View, but can be some other container of the page.
  16. */
  17. @Override
  18. public Object instantiateItem(View collection, int position) {
  19. View view = getLayoutInflater().inflate(R.layout.page,null);
  20. ImageView imageView =(ImageView) view.findViewById(R.id.imageId);
  21. imageView.setImageDrawable(imageS[position]);
  22. ((ViewPager) collection).addView(view,0);
  23. return view;
  24. }
  25. /**
  26. * Remove a page for the given position.  The adapter is responsible
  27. * for removing the view from its container, although it only must ensure
  28. * this is done by the time it returns from {@link #finishUpdate()}.
  29. *
  30. * @param container The containing View from which the page will be removed.
  31. * @param position The page position to be removed.
  32. * @param object The same object that was returned by
  33. * {@link #instantiateItem(View, int)}.
  34. */
  35. @Override
  36. public void destroyItem(View collection, int position, Object view) {
  37. ((ViewPager) collection).removeView((View) view);
  38. }
  39. @Override
  40. public boolean isViewFromObject(View view, Object object) {
  41. return view==((View)object);
  42. }
  43. /**
  44. * Called when the a change in the shown pages has been completed.  At this
  45. * point you must ensure that all of the pages have actually been added or
  46. * removed from the container as appropriate.
  47. * @param container The containing View which is displaying this adapter’s
  48. * page views.
  49. */
  50. @Override
  51. public void finishUpdate(View arg0) {}
  52. @Override
  53. public void restoreState(Parcelable arg0, ClassLoader arg1) {}
  54. @Override
  55. public Parcelable saveState() {
  56. return null;
  57. }
  58. @Override
  59. public void startUpdate(View arg0) {}
  60. }

复制代码

其中红色代码部分负责加载Layout和想layout中填充View.这样就实现了视图的随手势切换.源代码见: <ignore_js_op> android-viewpager0.1.rar (375.4 KB, 下载次数: 813)

viewpaper 抽屉的更多相关文章

  1. 浅谈DrawerLayout(抽屉效果)

    DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果. 实现效果如下: 因为是官方提供的,所以使用起来也相对的比较简单. DrawerLayout 提供 1.当界面弹出的时候,主要内容区会 ...

  2. 【IOS】模仿"抽屉新热榜"动态启动页YFSplashScreen

    IOS最好要设置系统默认启动页面,不然进入应用就会突然闪现黑色画面 下图是我们要实现的效果: 总体思路:设置一个系统默认启动页面,在进入didFinishLaunchingWithOptions时, ...

  3. iOS开发之抽屉效果实现

    说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController.一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPR ...

  4. Xamarin.Android之简单的抽屉布局

    0x01 前言 相信对于用过Android版QQ的,应该都不会陌生它那个向右滑动的菜单(虽说我用的是Lumia) 今天就用Xamarin.Android实现个比较简单的抽屉布局.下面直接进正题. 0x ...

  5. ToolBar和DrawerLayout的使用实现侧拉栏抽屉的开闭

    1.如图可以看到textColorPrimary,colorPrimary,colorPrimaryDark,navigationBarColor等颜色属性代表的相应位置,如下图 2.具体属性在res ...

  6. Zookeeper(一)从抽屉算法到Quorum (NRW)算法

    一.抽屉算法 抽屉算法,又名鸽巢原理,它是德国数学家狄利克雷首先明确的提出来并用以证明一些数论中的问题,因此,也称为狄利克雷原则.它是组合数学中一个重要的原理. 具体算法讲的是: 第一抽屉算法: 如果 ...

  7. [UI]抽屉菜单DrawerLayout分析(一)

    本文转载于:http://www.cnblogs.com/avenwu/archive/2014/04/16/3669367.html 侧拉菜单作为常见的导航交互控件,最开始在没有没有android官 ...

  8. Android笔记:DrawerLayout抽屉布局的使用

    DrawerLayout(抽屉布局),在各种app中经常出现,比如csdn.. 如下示,只要从屏幕侧边滑一下,或者点击左上角的图标,抽屉就会出来. DrawerLayout要点: 1.使用Drawer ...

  9. Android 抽屉效果的导航菜单实现

    Android 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...

随机推荐

  1. view保存为图片

    一.概述 简书.微博.便签等都有将文章保存为图片的功能.笔者臆测,此功能的实现原理如下. 二.实现 2.1将View保存成Bitmap对象 方法1(亲测有效) private Bitmap makin ...

  2. hdu-acm steps 免费馅饼

    /*dp入门级的题目,和数塔是一样的,这道题不用做什么优化,感觉时间复杂度不会超.主要还是细节上的问题, 这道题的状态和状态方程都容易找到,采用自底向上的方式会好很多*/ #include" ...

  3. 示例在同一台机器上使用RMAN克隆数据库

    1.查看主库ZDJS并使用RMAM进行备份 [oracle@std ~]$ sqlplus '/as sysdba' SQL*Plus: Release - Production on Wed Jan ...

  4. Linux常用命令(持续更新)

    lsb_release -a 查看linux操作系统信息 getconf LONG_BIT 查看linux操作系统位数 useradd [-g groupname] username 创建用户,并指定 ...

  5. NGUI事件监听之UIEventListener的使用

    NGUI的事件绑定可以使用 UIButtonMessage 在一个游戏对象上添加Button Message组件: 在Button Message组件上添加要通知的游戏对象上所挂载的脚本的方法 Tar ...

  6. db2数据库新手可能碰到的问题及详解(部分内容来自网络搜索)

    一.db2安装好之后出现乱码,菜单栏呈现方框状,此时选择菜单第五项,点击选择下拉菜单中的最后一项,打开选择标签卡的第三项(字体),如果是无衬线都改为有衬线,如果是有衬线改为无衬线.乱码即可解决(网上一 ...

  7. Mysql的一些常用命令

    Mysql基本操作 创建表: create table test01_02(id varchar(50) not null auto_increment primary key, name nvarc ...

  8. 有效的PhoneGap CSS: WebKit Tap Highlight Color

    原文链接:文章1:http://phonegap-tips.com/articles/essential-phonegap-css-webkit-tap-highlight-color.html(此文 ...

  9. IOS第18天(1,核心动画layer, 旋转,缩放,平移,边框,剪裁,圆角)

    ****动画效果 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [UIView animateWithDurat ...

  10. IOS第11天(1:UIPickerView点餐)

    UIPickerView #import "ViewController.h" @interface ViewController ()<UIPickerViewDataSo ...