引用: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方法如下:
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- initPageContent();
- awesomeAdapter = new MyPagerAdapter();
- awesomePager = (ViewPager) findViewById(R.id.awesomepager);
- awesomePager.setAdapter(awesomeAdapter);
- }
复制代码
其中main.xml布局文件引入了ViewPager:
- <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#a4c639">
- <android.support.v4.view.viewpager
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/awesomepager"/>
复制代码
MyPagerAdapter继承了PagerAdapter:
- private class MyPagerAdapter extends PagerAdapter{
- @Override
- public int getCount() {
- return imageS.length;
- }
- /**
- * Create the page for the given position. The adapter is responsible
- * for adding the view to the container given here, although it only
- * must ensure this is done by the time it returns from
- * {@link #finishUpdate()}.
- *
- * @param container The containing View in which the page will be shown.
- * @param position The page position to be instantiated.
- * @return Returns an Object representing the new page. This does not
- * need to be a View, but can be some other container of the page.
- */
- @Override
- public Object instantiateItem(View collection, int position) {
- View view = getLayoutInflater().inflate(R.layout.page,null);
- ImageView imageView =(ImageView) view.findViewById(R.id.imageId);
- imageView.setImageDrawable(imageS[position]);
- ((ViewPager) collection).addView(view,0);
- return view;
- }
- /**
- * Remove a page for the given position. The adapter is responsible
- * for removing the view from its container, although it only must ensure
- * this is done by the time it returns from {@link #finishUpdate()}.
- *
- * @param container The containing View from which the page will be removed.
- * @param position The page position to be removed.
- * @param object The same object that was returned by
- * {@link #instantiateItem(View, int)}.
- */
- @Override
- public void destroyItem(View collection, int position, Object view) {
- ((ViewPager) collection).removeView((View) view);
- }
- @Override
- public boolean isViewFromObject(View view, Object object) {
- return view==((View)object);
- }
- /**
- * Called when the a change in the shown pages has been completed. At this
- * point you must ensure that all of the pages have actually been added or
- * removed from the container as appropriate.
- * @param container The containing View which is displaying this adapter’s
- * page views.
- */
- @Override
- public void finishUpdate(View arg0) {}
- @Override
- public void restoreState(Parcelable arg0, ClassLoader arg1) {}
- @Override
- public Parcelable saveState() {
- return null;
- }
- @Override
- public void startUpdate(View arg0) {}
- }
复制代码
其中红色代码部分负责加载Layout和想layout中填充View.这样就实现了视图的随手势切换.源代码见: <ignore_js_op> android-viewpager0.1.rar (375.4 KB, 下载次数: 813)
|
|
- 浅谈DrawerLayout(抽屉效果)
DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果. 实现效果如下: 因为是官方提供的,所以使用起来也相对的比较简单. DrawerLayout 提供 1.当界面弹出的时候,主要内容区会 ...
- 【IOS】模仿"抽屉新热榜"动态启动页YFSplashScreen
IOS最好要设置系统默认启动页面,不然进入应用就会突然闪现黑色画面 下图是我们要实现的效果: 总体思路:设置一个系统默认启动页面,在进入didFinishLaunchingWithOptions时, ...
- iOS开发之抽屉效果实现
说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController.一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPR ...
- Xamarin.Android之简单的抽屉布局
0x01 前言 相信对于用过Android版QQ的,应该都不会陌生它那个向右滑动的菜单(虽说我用的是Lumia) 今天就用Xamarin.Android实现个比较简单的抽屉布局.下面直接进正题. 0x ...
- ToolBar和DrawerLayout的使用实现侧拉栏抽屉的开闭
1.如图可以看到textColorPrimary,colorPrimary,colorPrimaryDark,navigationBarColor等颜色属性代表的相应位置,如下图 2.具体属性在res ...
- Zookeeper(一)从抽屉算法到Quorum (NRW)算法
一.抽屉算法 抽屉算法,又名鸽巢原理,它是德国数学家狄利克雷首先明确的提出来并用以证明一些数论中的问题,因此,也称为狄利克雷原则.它是组合数学中一个重要的原理. 具体算法讲的是: 第一抽屉算法: 如果 ...
- [UI]抽屉菜单DrawerLayout分析(一)
本文转载于:http://www.cnblogs.com/avenwu/archive/2014/04/16/3669367.html 侧拉菜单作为常见的导航交互控件,最开始在没有没有android官 ...
- Android笔记:DrawerLayout抽屉布局的使用
DrawerLayout(抽屉布局),在各种app中经常出现,比如csdn.. 如下示,只要从屏幕侧边滑一下,或者点击左上角的图标,抽屉就会出来. DrawerLayout要点: 1.使用Drawer ...
- Android 抽屉效果的导航菜单实现
Android 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...
随机推荐
- 清空highcharts数据
1:清空highcharts图表的数据我们常用的方法就是remove() var seriesList = chart.series; //获得图表的所有序列 var seriesCount=seri ...
- Crossing River
Crossing River 题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=26251 题意: N个人希望去过 ...
- 处理海量数据的高级排序之——堆排序(C++)
在面对大数据量的排序时(100W以上量级数据),通常用以下三种的排序方法效率最高O(nlogn):快速排序.归并排序,堆排序.在这个量级上,其他冒泡,选择,插入等简单排序已经无法胜任,效率极低,跟前面 ...
- Bootstrap 4上线啦!!!
Bootstrap 官方于 2015 年 8 月 19 日发布了其最新版本 Bootstrap v4.0.0-alpha. Bootstrap 4 的开发是一项浩大的工程,将近一年的开发,几乎是对整个 ...
- ubuntn 安装 MySQL
1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install li ...
- input相关问题总结
1. 禁止为所有被激活的输入框添加边框 *:focus {outline: none} 2. 禁止为被激活的输入框添加边框,说明:".abc"为输入框对象自定义添加的class类命 ...
- 本地数据库(SQL Server)远程连接服务器端服务器
本地数据库(SQL Server 2012) 连接外网服务器的数据库,外网的服务器端需要做如下配置: 1. 首先是要打开 数据的配置管理工具 2. 配置相关的客户端协议,开启TCP/IP 3. 数据库 ...
- Neusoft(3)增加自己的内核模块
Linux版本 Ubuntu12.04LTS,内核版本为3.2.0-26-generic-ape 具体方法如下: 1.建立源文件,假设文件目录为path,文件名为hello.c源代码如下: #incl ...
- 应该掌握的MySQL命令、MySQL语句
一.MySQL常用的命令: 1. 连接数据库:mysql>mysql -uroot -p回车,再输入密码 mysql -h 192.168.0.200 -P 3306 -u root -p2 ...
- div自定义的滚动条 (水平导航条)
<!DOCTYPE html> <html> <head> <title></title> <style> div{ /* wi ...