引用: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 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...
随机推荐
- Selenium_获取相对坐标
<html> <head> <title>位置</title> <style> .test { background: url(" ...
- Infragistics公司的UltraWebGrid控件在显示的时候报“theForm” 未定义错误的解决。
在项目中使用了Infragistics公司的UltraWebGrid控件,浏览器中报错,“theForm” 未定义,并且造成客户端js,滚动条,失效.最后查官网论坛找到问题.需要把web.config ...
- Bootstrap 4上线啦!!!
Bootstrap 官方于 2015 年 8 月 19 日发布了其最新版本 Bootstrap v4.0.0-alpha. Bootstrap 4 的开发是一项浩大的工程,将近一年的开发,几乎是对整个 ...
- jquery插件之拖拽
该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的拖拽效果,您可以根据自己的实际需求来设置被拖拽元素是否可 ...
- Linux_安装软件包
一.软件包: 源码包 二进制包(rpm包,编译完成) 依赖性 包A-->包B-->包C 一.rpm 挂载镜像,从镜像文件中找到要安装的rpm包 [root@hadoop09-linux ~ ...
- ArcGIS AddIN开发之COM对象写入注册表
做一个交互式绘制文字的工具,希望这次设置的Symbol,下次打开ArcMap时自动调用这个Symbol,并支持对其进行修改. 解决方法是将这个Symbol写入注册表中,每次自动读取上一次设置的Symb ...
- echarts一个页面动态加载两张不同图表数据
参考 http://www.stepday.com/topic/?877 http://blog.csdn.net/for_china2012/article/details/45167161 // ...
- Lua数据结构
lua中的table不是一种简单的数据结构,它可以作为其他数据结构的基础,如:数组,记录,链表,队列等都可以用它来表示. 1.数组 在lua中,table的索引可以有很多种表示方式.如果用整数来表示t ...
- php完全销毁session
<?php session_start(); session_unset(); session_destroy(); ?> session_unset()释放当前在内存中已经创建的所有$_ ...
- 使用putty组件向服务器上传或下载文件
基于SSH的连接 上传文件: pscp -P 28661(portNum) -pw password sourceFilePath user@serverIP:destinationFilePath ...