时间:2015-08-28 来源:

Android之——史上最简单旋转菜单实现效果 【编程语言】

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48048323 由于身体原因psd切图html,前几天没有给大家更新博客,psd切图html那么,团队网页接活今天我们就来一起实现一个非常酷炫的旋转菜单效果吧.在很多APP中,div切图排版不难发现div页面,人家把菜单效果设计的那叫一个酷炫啊,手机页面切图排版其中一种设计就是将菜单设计成旋转的效果.好了div+css+js切图,那么这么酷炫的菜单效果是如何实现的呢?下面,div+css+js切图就让我们一起来实现这个酷炫的菜单效果吧.

具体实现代码如下:

具体如下:

1)入动画方法 这个动画效果以旋转效果实现承接网站前端,从-180到0

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lyz.youku_menu.activity" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.lyz.youku_menu.activity.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

具体实现代码如下:

2、MainActivity 所有的实现都是在MainActivity中实现的,页面div重构在这个类中psd切图html,首先我们找到界面上所有的控件,psd切图html然后设置两个boolean类型的标识位web外包,分别标识二级菜单和三级菜单是否显示,web外包然后为home和menu两个菜单设置点击事件网页切图制作,在点击事件中完成菜单的动画效果.

4、AndroidManifest.xml 这个文件没有添加任何内容,div页面都是Android自动生成的文件内容.

1、一级菜单总会显示;

3)完整代码如下:

//出动画效果 public static void startAnimationOut(final ViewGroup viewGroup, int startOffSet){ Animation animation = new RotateAnimation(0, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, 1.0f); animation.setFillAfter(true); animation.setDuration(duration); animation.setStartOffset(startOffSet); animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub for(int i = 0; i < viewGroup.getChildCount(); i++){ View view = viewGroup.getChildAt(i); view.setVisibility(View.GONE); view.setClickable(false); view.setFocusable(false); } viewGroup.setVisibility(View.GONE); } }); viewGroup.startAnimation(animation); }

这个示例的实现原理很简单,web外包利用Android中的相对布局在界面上实现嵌套的三层原型菜单网页切图制作,一级菜单在最内层,手机页面切图排版二级菜单次之div+css+js切图,三级菜单在最外层.

二、实现 1、自定义动画类MyAnimation 这个类中主要有两个动画方法,网页重构报价一个是入动画方法startAnimationIn, int duration){ for(int i = 0; i < viewGroup.getChildCount(); i++){ View view = viewGroup.getChildAt(i); view.setVisibility(View.VISIBLE); view.setClickable(true); view.setFocusable(true); } Animation animation = new RotateAnimation(-180, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, int duration){ for(int i = 0; i < viewGroup.getChildCount(); i++){ View view = viewGroup.getChildAt(i); view.setVisibility(View.VISIBLE); view.setClickable(true); view.setFocusable(true); } Animation animation = new RotateAnimation(-180, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, int duration, -180, 0.5f, 1.0f); animation.setFillAfter(true); animation.setDuration(duration); animation.setStartOffset(startOffSet); animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub for(int i = 0; i < viewGroup.getChildCount(); i++){ View view = viewGroup.getChildAt(i); view.setVisibility(View.GONE); view.setClickable(false); view.setFocusable(false); } viewGroup.setVisibility(View.GONE); } }); viewGroup.startAnimation(animation); } }

一、原理 老规矩承接网站前端, 500, 500); } isLevel3Show = !isLevel3Show; } }); home.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(!isLevel2Show){ MyAnimation.startAnimationIn(level2, 500, 500, 500, menu); return true; } }

2)出动画方法 这个方法基本与入动画效果相同psd切图html,同时在旋转结束后设置控件的显示效果

版权声明:本文为博主原创文章web外包,未经博主允许不得转载.

3、界面布局activity_main.xml 具体实现代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <RelativeLayout android:id="@+id/level1" android:layout_width="100dip" android:layout_height="50dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@drawable/level1" > <ImageButton android:id="@+id/home" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/icon_home" /> </RelativeLayout> <RelativeLayout android:id="@+id/level2" android:layout_width="180dip" android:layout_height="90dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@drawable/level2" > <ImageButton android:id="@+id/search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="6dip" android:layout_marginLeft="12dip" android:background="@drawable/ic_action_search" /> <ImageButton android:id="@+id/menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_margin="6dip" android:background="@drawable/icon_menu" /> <ImageButton android:id="@+id/myyouku" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="6dip" android:layout_marginRight="12dip" android:background="@drawable/icon_myyouku" /> </RelativeLayout> <RelativeLayout android:id="@+id/level3" android:layout_width="280dip" android:layout_height="140dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:background="@drawable/level3" > <ImageButton android:id="@+id/c1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="6dip" android:layout_marginLeft="12dip" android:background="@drawable/channel1" /> <ImageButton android:id="@+id/c2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/c1" android:layout_marginBottom="12dip" android:layout_marginLeft="30dip" android:background="@drawable/channel2" /> <ImageButton android:id="@+id/c3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/c2" android:layout_toRightOf="@id/c2" android:layout_marginBottom="12dip" android:layout_marginLeft="8dip" android:background="@drawable/channel3" /> <ImageButton android:id="@+id/c4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_margin="6dip" android:background="@drawable/channel4" /> <ImageButton android:id="@+id/c7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="6dip" android:layout_marginRight="12dip" android:background="@drawable/channel7" /> <ImageButton android:id="@+id/c6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/c7" android:layout_alignParentRight="true" android:layout_marginBottom="12dip" android:layout_marginRight="30dip" android:background="@drawable/channel6" /> <ImageButton android:id="@+id/c5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/c6" android:layout_toLeftOf="@id/c6" android:layout_marginBottom="12dip" android:layout_marginRight="8dip" android:background="@drawable/channel5" /> </RelativeLayout> </RelativeLayout>

具体实现代码如下:

三、运行效果

四、温馨提示 大家可以到链接http://download.csdn.net/detail/l1028386804/9057109下载完整的旋转菜单实现示例源代码

本实例中,div切图排版为了方面网页切图制作,我把一些文字直接写在了布局文件中和相关的类中,手机页面切图排版大家在真实的项目中要把这些文字写在string.xml文件中div+css+js切图,在外部引用这些资源,div+css+js切图切记承接网站前端,这是作为一个Android程序员最基本的开发常识和规范,页面div重构我在这里只是为了方便直接写在了类和布局文件中.

2、点击一级菜单psd切图html,若菜单全部显示,psd切图html则先旋转消失三级菜单web外包,然后旋转消失二级菜单;若只显示二级菜单,web外包则旋转消失二级菜单;若没有菜单显示网页切图制作,则旋转显示二级菜单;

3、点击二级菜单,div页面若三级菜单显示div+css+js切图,则旋转消失三级菜单;若三级菜单不显示,div+css+js切图则旋转显示三级菜单.

原理啰嗦完了承接网站前端,是不是很简单呢?下面,承接网站前端我们就来一起实现这些效果吧.

点击次数:14794
作者:
web前端行业资讯
Web new NewsList
Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日苹果经典电脑Lisa源代码修复完成将于2018年开源 ,,2017年12月28日腾讯浏览指数发布年终榜单2017年人们都关注哪些AI话题? ,,2017年12月28日除了发现开普勒90,NASA还靠AI做了什么? ,,2017年12月28日柯洁宣布:明年4月,将再次与围棋AI交锋 ,,2017年12月28日百度无人车美国首秀CES将发布Apollo2.0 ,,2017年12月28日这四种技术发展趋势将在2018年改变世界 ,,2017年12月28日2017:谷歌DeepMind团队的年度回顾 ,,2017年12月28日封杀这个公式,AI智商将为零 ,,2017年12月28日微软AI高管:要让所有人、所有机构都用上人工智能 ,,2017年12月28日为什么Linux桌面年一直未到来 ,,2017年12月28日AppleLisa操作系统将开源 ,,2017年12月28日2018年9大技术趋势预测 ,,2017年12月28日谷歌研究院发布NIMA:能评价图像有多美,还能让图像变得更美 ,,2017年12月28日苹果为2019年iPhone开发大容量电池新技术 ,,2017年12月28日谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日继“Angel”开源后,腾讯又开放TDinsight机器学习平台 ,,2017年12月21日PHP提示Notice:Undefinedvariable的解决办法2014年01月29日中职艺术院校舞蹈教育的不足与完善【编程语言】2015年01月09日微信导航页 【架构设计】2015年01月12日Flash实例教程:好看的旋转文字动画2014年01月28日Android手机影音学习过程记录(三) 【移动开发】2015年07月01日本地版pyltp执行结果的格式转换与访问——以json为例【编程语言】2015年04月29日Slang俚语【slæ?】 【移动开发】2015年02月09日重拾算法之路——递归与分治基础 【综合】2014年11月04日three.js源码注释(三十四)TextureTexture.js 【架构设计】2014年12月10日BZOJ2753SCOI2012滑雪与时间胶囊最小生成树2014年12月09日【资料汇编】结巴中文分词官方文档和源码分析系列文章2016年11月23日poj1178floyd+枚举【编程语言】2015年03月17日设计模式(十六)中介者模式(Mediator)-行为型 【编程语言】2015年05月15日创建Django项目 【综合】2015年06月24日【Android】利用adt-bundle在Linux下轻松搭建Android开发环境与Helloworld 【编程语言】2015年04月17日呕茁夭夭韧问分当磷妆久磕倍痘铰【编程语言】2014年12月01日windows:wmi&wql 【编程语言】2015年06月01日.net中的session与cookies区别及使用方法2014年01月29日正则表达式应用之提炼百度歌词的实现代码2014年01月29日GNU-makefle(三)规则语法、文件查找、伪目标 【编程语言】2014年11月13日Mysql-SQL优化-统计某种类型的个数【移动开发】2014年11月08日Shell命令机制 【移动开发】2014年12月01日EclipseAndroid项目导入AndroidStudio时常见的编译错误及解决办法 【移动开发】2015年07月07日总结AJAX相关JS代码片段和浏览器模型2014年01月29日一语成金,说透管理,点透人生!【综合】2015年04月17日hdu26022015年08月14日C#简单获取屏幕鼠标坐标点颜色方法介绍2014年01月29日老板不接受的那些加薪理由 【Web前端】2015年05月29日AJAXFCKEditorRichEditor整合篇2014年01月29日RevolutionPlatform【研发管理】2015年06月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)