[android] 优酷环形菜单-旋转动画详解手机开发
2023-06-13 09:20:13 时间
获取房子,菜单图标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; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.RelativeLayout; public class MainActivity extends Activity implements OnClickListener { private ImageView icon_home; private ImageView icon_menu; private RelativeLayout level1; private RelativeLayout level2; private RelativeLayout level3; private boolean isLevel3Show=true; private boolean isLevel2Show=true; @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(this); //处理点击事件 @Override public void 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://菜单图标 if(isLevel2Show){ //隐藏 MyUtils.startAnimOut(level2,0); if(isLevel3Show){ MyUtils.startAnimOut(level3,100); isLevel3Show=false; }else{ //显示 MyUtils.startAnimIn(level2); isLevel2Show=!isLevel2Show; break; }
MyUtils.java
package com.tsh.myyouku; import android.view.animation.RotateAnimation; import android.widget.RelativeLayout; public class MyUtils { /** * 旋转离开 * @param view public static void startAnimOut(RelativeLayout view,long times) { RotateAnimation rotateAnimation=new RotateAnimation(0, 180, view.getWidth()/2, view.getHeight()); rotateAnimation.setDuration(1000); rotateAnimation.setFillAfter(true); rotateAnimation.setStartOffset(times); view.startAnimation(rotateAnimation); /** * 旋转进入 * @param level3 public static void startAnimIn(RelativeLayout view) { RotateAnimation rotateAnimation=new RotateAnimation(180, 360, view.getWidth()/2, view.getHeight()); rotateAnimation.setDuration(1000); rotateAnimation.setFillAfter(true); view.startAnimation(rotateAnimation); }
5405.html
app程序应用开发手机开发无线开发移动端开发相关文章
- Android图形动画 使用ScaleAnimation
- android+制作开机动画,Android 开机动画制作详解
- android系统开机画面_Android开机画面
- android开机动画多长时间_Android开机动画原理分析
- 74款android开机动画,修改Android系统开机动画
- 基于chromium for android开发Android浏览器
- android okio使用方法,Android 开源框架 Okio 原理剖析「建议收藏」
- delphixe5 android,Delphi XE5 Android手机端转换Ansi字符串
- android activity singletask,Android Activity启动模式之singleTask实例详解
- 测试android sdk是否安装成功,配置Android SDK
- android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用
- android activitymanager 系统api_Android view
- Android保存图片到相册(适配android 10以下及以上)
- ReactNative-Android插件
- 【Android 属性动画】属性动画 Property Animation 简介 ( 属性动画简介 | 属性动画特性 )
- 【Android 安全】DEX 加密 ( DEX 加密使用到的相关工具 | dx 工具 | zipalign 对齐工具 | apksigner 签名工具 )
- 【Android 逆向】使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )
- 【Android UI】贝塞尔曲线 ① ( 一阶贝塞尔曲线 | 二阶贝塞尔曲线 )
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )
- 【错误记录】Android Studio 编译报错 ( Could not resolve com.android.tools.build:gradle:7.4.2. )
- Android旋转动画rotate动画,xml配置set实现详解手机开发
- Android弹出选项框及指示箭头动画选择详解手机开发
- Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局详解手机开发
- android之动画popowindows详解手机开发
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果详解手机开发
- android获取短信并自动填充详解手机开发
- android Universal Image Loader for Android 说明文档 (1)详解手机开发
- Android动画深入分析详解手机开发
- Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string ‘android-23’ 等错误详解手机开发
- Android中android:visibility的3中属性的剖析详解手机开发
- Android系统自带样式(android:theme)
- Android四种动画效果的调用实现代码
- Android中AndroidVirtualDevice(AVD)使用教程