[android] 优酷环形菜单-旋转动画

[android] 优酷环形菜单-旋转动画,第1张

概述获取房子,菜单图标ImageView对象,获取三个圆环RelativeLayout对象 给菜单图标(icon_menu)设置点击事件 定义一个成员变量isLevel3Show来存储第三级菜单是否显示

 

获取房子,菜单图标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] 优酷环形菜单-旋转动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1121170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存