Android 实现两屏幕互相滑动

下文来自:

http://blog.csdn.net/song_shi_chao/article/details/7081664

---------------------------------------------------------------------------------------------------------

最近在学习两屏幕互相滑动这里,看了一些源码,整理如下。转自安卓巴士一个兄弟的文章。感觉不错。

建议按顺序看,我个人感觉这个顺序比较适合学习。

Android实现简单移动动画
http://www.apkbus.com/forum.php?mod=viewthread&tid=18381&fromuid=3402

Android利用ViewFlipper实现随手势滑动视图间切换
http://www.apkbus.com/forum.php?mod=viewthread&tid=18380&fromuid=3402

为ViewFlipper视图切换增加动画
http://www.iteye.com/topic/1114378

Android中利用ViewGroup 实现视图随手势移动(这种形式目前被ViewPager替换了,原来都使用这种实现方式)

http://www.apkbus.com/forum.php?mod=viewthread&tid=18382&fromuid=3402

Android中利用ViewPager实现视图切换
http://www.apkbus.com/forum.php?mod=viewthread&tid=18384&fromuid=3402

最近在研究这个东西,发现新浪微博的客户端、腾讯微博的客户端都有这个功能。目前到今天为止,腾讯和微博的客户端都是使用viewPager控件写的,可能重写了一些地方。而腾讯老版本的qq是用viewflipper写的,就是手势滑动切屏。但是新版本的客户端,它已经使用viewpager写了。

切屏有几种实现方式:

第一种:使用viewgroup,比如上面的网址就又例子。

第二种:使用viewflipper。就是手势滑动。根据手势的变化,比如向左或者向右,虽然能切屏,但是不能呈现两个界面的内容,就是说,只能显示一个试图。滑动后,将出现另一个试图。

第三种:使用提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类。这种方式也是viewpager没有出现时大家常用得一种方式。不过现在除了用于手机桌面的滑动外,新版的客户端多数都已经不用这种实现方式了。

第四种:就是使用ViewPager了。这是后来google加的一个东西,使用起来很方便,也不是很卡。当然需要做很多优化。数据当然多数情况不是静态的,而是从网络上获取的,所以优化就是必须得了。优化到什么程度就看你的功力了。

【Android】通过手势切换屏幕的几种方法

第一种: ViewFlipper + GestureDetector

第二种: ActivityGroup +   GestureDetector

第三种: ViewPager  (Android3.0+)

第四种: ViewFlow (开源项目)  (示例: http://download.csdn.net/detail/feng88724/3812764

前两种大家应该都知道,尤其是第一种,应该都用过了。( 第二种方式可参考此文:http://www.iteye.com/topic/1115953 )

本文重点要讲是第三种方式,Viewpager。 可能有人会说,这要Android 3.0以上才可以使用呢,现在市场上的手机根本没有基于这个Level的,基本都在2.0 - 2.3,怎么办呢?

没关系,google 在2011年3月时推出了Compatibility (   http://developer.android.com/guide/practices/compatibility.html ),这东西到底有什么用呢?

说白了,他得主要作用就是让低版本的Android支持Android3.0中的一些特性, Google将Android3.0中部分API抽取出来,打成一个Jar包,android-support-v4.jar,只要你在开发应用时引入这个包,那你就也能使用ViewPager、Fragment、Loader等这些API了。  这些我放一个网上找到的说明文档,其实只要导入v4的这个jar就可以开发,但还是有不清楚的朋友可以看看这个文档(http://download.csdn.net/detail/feng88724/3798731)。

下面开始就讲下如何使用Viewpager实现屏幕内容切换。

发现已经有好几个朋友写过相关文章,我就不重复发明轮子了..

Android 实现两屏幕互相滑动的更多相关文章

  1. Android的Activity屏幕切换滑动动画

    Activity的切换效果使用的是Android的动画效果,Android的动画在官方有相关资料:http://developer.android.com/guide/topics/graphics/ ...

  2. Android的Activity屏幕切换动画(一)-左右滑动切换

    (国内知名Android开发论坛eoe开发者社区推荐:http://www.eoeandroid.com/) Android的Activity屏幕切换动画(一)-左右滑动切换 在Android开发过程 ...

  3. Android UI效果实现——Activity滑动退出效果

    更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况 ...

  4. android多分辨率多屏幕密度下UI适配方案

    相关概念 分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720,反之分辨率为1280x720的屏幕,像素宽度不一定为1280 屏幕密度:表 ...

  5. Android使用ViewFlipper实现左右滑动效果面

    在我的博客中,上次是使用ViewPager实现左右滑动的效果的,请看文章:Android使用ViewPager实现左右滑动效果. 这次我来使用ViewFlipper实现这种效果,好了,先看看效果吧: ...

  6. Android自适应不同屏幕几种方法

        因为Android设备的屏幕尺寸.分辨率区别很大.假设希望我们的应用可以在不同屏幕尺寸或分辨率的Android设备上执行,即更换Android设备后界面和字体不会因此变得混乱.则须要考虑屏幕的 ...

  7. 【Android Studio安装部署系列】二十六、Android studio录制屏幕并生成gif文件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio自带录制屏幕功能,那么就可以很方便地将手机上的屏幕操作录制成视频.然后借助一些软件或者网站转换成gif文 ...

  8. Android Camera多屏幕适配解决预览照片拉伸

    通常,拍照预览页面的照片拉伸主要与下面两个因素有关: 1.     Surfaceview的大小 2.     Camera中的Preview的大小 如下图:     图中preview显示的是手机支 ...

  9. Qt for Android 程序禁止屏幕旋转

    有时候我们希望让一个程序的界面始终保持在一个方向,不随手机(平板)方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入 android:screen ...

随机推荐

  1. NOIP2015 T4 推销员 贪心+堆优化

    前几天在学堆,这个数据结构貌似挺简单的,但是我看了很久啊QAQ... 今天算是搞懂了吧...于是想到了这道题...(当初悄悄咪咪看题解记得一点) 点我看题 放洛谷的题... 题意的话,大概就是有n个房 ...

  2. Linux用户及权限分配

    一.用户分类 所有者 u; 所属组 g; 其它用户 o; 所有用户 a; 二.用户管理 //查看用户 id user //添加用户 useradd user //设置密码 passwd user // ...

  3. Oracle——ORA-01031: 权限不足

    报错:ORA-01031: 权限不足 解决方法:给用户admin授予DBA角色 grant dba to admin;

  4. 数据结构实习 problem L 由二叉树的中序层序重建二叉树

    由二叉树的中序层序重建二叉树 writer:pprp 用层序中序来重建二叉树 代码点这里 其实本质上与前序中序建立二叉树没有什么太大区别 大概思路: 递归解法,对当前层进行处理,通过层序遍历可以得到当 ...

  5. linux pgrep命令的使用

    pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行. 常用参数 -l 列出程序名和进程ID -o 进程起始的ID -n 进程终止的ID $ ps -ef | grep mys ...

  6. shell 条件语句

    shell 条件语句 #!/bin/bash # 条件语句 NUM1=100 NUM2=200 if (($NUM1 > $NUM2));then echo "$NUM1 greate ...

  7. [Eclipse]保存java文件时,自动删除不需要的包import

    1.修改设定:Window->Preferences 2.效果:                =>           

  8. head first python选读(5)

    python web 开发 犯了低级错误,这本书看了一半了才知道书名应为<head first python>,不是hand first.. 现在开始一个web应用. 总算是熟悉的内容了. ...

  9. python学习笔记(字典乱码)

    博主总结下 python中字典中包含中文时,使用过程中出现乱码 json.dumps(params, encoding="UTF-8", ensure_ascii=False) p ...

  10. Lua学习笔记1,基本数据类型

    1.字符串的连接使用的是  .. ,如 print(123 .. 44) 输出 12344 print ('a' .. 'b') 输出 ab print(123 .. 44)这句的时候 .. 两边要空 ...