获取房子,菜单图标ImageVIEw对象,获取三个圆环relativeLayout对象
给菜单图标(icon_menu)设置点击事件
定义一个成员变量isLevel3Show来存储第三级菜单是否显示
判断上面的变量,来显示隐藏第三级菜单,定义一个类实现动画效果
切换变量,isLevel3Show=!isLevel3Show
定义一个工具类MyUtils,实现旋转动画
定义一个startAnimOut()
获取RotateAnimation对象,旋转对象的默认中心是左上角,开始度数默认是水平向右为0度,顺时针转;构造函数:开始度数,结束度数,圆心x(宽度一半),圆心y(高度)
调用RotateAnimation对象的setDuration()方法,设置执行时间,参数:毫秒
调用RotateAnimation对象的setFillAfter()方法,设置执行完毕后保持状态,参数:布尔值
定义一个startAnimIn(),参数:relativeLayout对象,延迟毫秒
和上面一样,度数不一样而已,从180度到360度
调用RotateAnimation对象的setStartOffset()方法,延迟播放
给房子图标(icon_home)设置点击事件
判断当二级菜单显示时,把它隐藏,并且当三级菜单也显示时,也要隐藏
当它隐藏时,让他显示
MainActivity.java
package com.tsh.myyouku;import androID.app.Activity; androID.os.Bundle; androID.vIEw.VIEw; androID.vIEw.VIEw.OnClickListener; androID.Widget.ImageVIEw; androID.Widget.relativeLayout;public class MainActivity extends Activity implements OnClickListener { private ImageVIEw icon_home; ImageVIEw icon_menu; relativeLayout level1; relativeLayout level2; relativeLayout level3; private boolean isLevel3Show=true; boolean isLevel2Show=; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); icon_home=(ImageVIEw) findVIEwByID(R.ID.icon_home); icon_menu=(ImageVIEw) findVIEwByID(R.ID.icon_menu); level1=(relativeLayout) findVIEwByID(R.ID.level1); level2=(relativeLayout) findVIEwByID(R.ID.level2); level3=(relativeLayout) findVIEwByID(R.ID.level3); icon_menu.setonClickListener(this); icon_home.setonClickListener(); } //处理点击事件 @OverrIDe onClick(VIEw v) { switch (v.getID()) { case R.ID.icon_menu:菜单图标 if(isLevel3Show){ 隐藏 MyUtils.startAnimOut(level3,0); }else{ 显示 MyUtils.startAnimIn(level3); } isLevel3Show=!isLevel3Show; break; case R.ID.icon_home:(isLevel2Show){ 隐藏 MyUtils.startAnimOut(level2,1)">); (isLevel3Show){ MyUtils.startAnimOut(level3,100); isLevel3Show=false; } } MyUtils.startAnimIn(level2); } isLevel2Show=!isLevel2Show; ; } }}
MyUtils.java
androID.vIEw.animation.RotateAnimation;class MyUtils { /** * 旋转离开 * @param vIEw */ static voID startAnimOut(relativeLayout vIEw,long times) { RotateAnimation rotateAnimation=new RotateAnimation(0,180,vIEw.getWIDth()/2,vIEw.getHeight()); rotateAnimation.setDuration(1000); rotateAnimation.setFillAfter(); rotateAnimation.setStartOffset(times); vIEw.startAnimation(rotateAnimation); } * 旋转进入 * level3 startAnimIn(relativeLayout vIEw) { RotateAnimation rotateAnimation=new RotateAnimation(180,360,1)">); vIEw.startAnimation(rotateAnimation); }}总结
以上是内存溢出为你收集整理的[android] 优酷环形菜单-旋转动画全部内容,希望文章能够帮你解决[android] 优酷环形菜单-旋转动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)