Android之卫星菜单的实现

  卫星菜单是现在一个非常受欢迎的“控件”,很多Android程序员都趋之若鹜,预览如下图。传统的卫星菜单是用Animation实现的,需要大量的代码,而且算法极多,一不小心就要通宵Debug。本帖贴出用属性动画Animator来实现卫星菜单。

一、浅析属性动画Animator

  Animator是Android3.0发布的新功能,代码简单,效果丰富。属性动画,顾名思义,只要是可以GET和SET的属性,我们都可以用属性动画进行处理。属性动画中常用的属性和方法如下:

ValueAnimator  //数值发生器,可以实现很多很灵活的动画效果
ObjectAnimator  //ValueAnimator的子类,对ValueAnimator进行了封装,让我们可以更轻松的使用属性动画,我们通过ObjectAnimator来操纵一个对象,产生动画效果
AnimatorListener  //对动画的开始、结束、暂停、重复等动作的事件监听(需要重写四个方法)
AnimatorListenerAdapter  //对动画的开始、结束、暂停、重复中的一个动作的事件监听(根据选择的动作,只需要重写一个方法)
AnimatorSet  //动画的集合,用来设置多个动画之间的关系(之前、之后、同时等)
PropertyValuesHolder  //动画的集合,和AnimatorSet类似
TypeEvaluators  //值计算器,在使用ValueAnimator.ofObject()方法时引入自定义的属性对象
Interpolators  //插值器,设置动画的特效(速度渐变、弹跳等)

卫星菜单的开发主要用到了ObjectAnimator。ObjectAnimator中常用的属性如下:

translationX / translationY             水平/垂直平移
rotaionX / rotationY                    横向/纵向旋转
scaleX / scaleY                         水平/垂直缩放
X / Y                                   直接到达X/Y坐标
alpha                                   透明度

二、实现卫星菜单

未完待续。。。。。。

时间: 2024-12-08 15:01:42

Android之卫星菜单的实现的相关文章

Android 实现卫星菜单

步骤:一:自定义ViewGroup 1.自定义属性 a.attr.xml b.在布局文件中使用activity_main.xml c.在自定义控件中进行读取 2.onMeasure 3.onLayout 4.设置主按钮的旋转动画 为menuItem添加平移动画和旋转动画 实现menuItem的点击事件 MainActivity.java public class MainActivity extends AppCompatActivity { private ListView listView;

自定义旋转卫星菜单

经常在应用中看到卫星菜单,自己也学着写了一个继承自ViewGroup的CustomMenu的卫星菜单,不同之处是带了旋转,由于使用了属性动画,所以只支持3.0以上,还有就是界面变的难看了,囧~,上图(gif录制不流畅,见谅啊): 1. 自定义属性: 为了偷懒,只定义两了两个属性,分别表示子菜单的大小和中心那个显示和隐藏按钮的大小. <declare-styleable name="CustomMenu"> <attr name="itemSize"

浅谈属性动画简单使用之实现卫星菜单(二)

大家对于卫星菜单应该都不陌生了,其实这个菜单如果能合适运用到我们的APP项目中,确实是一个不错的选择,交互性非常好.在写Demo之前我也上网搜了一些关于卫星菜单的实现,感觉好多人实现卫星菜单这种动画,采用的是补间动画,并且代码还不少,通过上一讲我们知道,补间动画不具备与用户交互的特点,就比如卫星菜单展开后,产生很多子菜单有很多的点击事件,会发现产生点击事件的位置不会随着补间动画而产生位置改变而改变,反而点击事件一直保存在初始的位置.当然补间动画也能做,那就需要产生动画后发生位置的改变,并且也需要

属性动画实现卫星菜单效果

原来学过用自定义控件以及视图动画来达到这个效果.后来根据慕课网的视频,接触到了属性动画,发现其精髓之处不是一点两点. 相信大家都知道,当我们在使用视图(View)动画的时候,改变轨迹时,所触发的点击事件却没有相对应的随之轨迹而改变.确切的说,Animation改变显示的位置,不可以实现交互的效果,只是实现了显示效果. 先看下Animator的介绍 This is the superclass for classes which provide basic support for animatio

Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9671609 记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个朋友在评论中留言,希望我可以帮他将这个滑动菜单改成双向滑动的方式.当时也没想花太多时间,简单修改了一下就发给了他,结果没想到后来却有一大批的朋友都来问我要这份双向滑动菜单的代码.由于这份代码写得很不用心,我发了部分朋友之后实在不忍心继续发下去了,于是决定专门写一篇文章来介绍更好的Android双向滑

android圆形旋转菜单,并支持移动换位功能

LZ最近接手公司一个项目,需要写一个圆形的旋转菜单,并且支持菜单之间的移动换位,本来以为这种demo应该网上是很多的,想不到度娘也是帮不了我,空有旋转功能但是却不能换位置,所以LZ就只能靠自己摸索了. 最终LZ参考了网上的部分代码,重写了一个自定义的view终于实现了这个看似很吊,却没有实际意义的功能.在此贡献出来给广大码农们共享. 话不多说,先上代码: 自定义view类: public class RoundSpinView extends View { private Paint mPain

Android学习之菜单

android中包含多种菜单,本例带来的是选项菜单和上下文菜单. 1.选项菜单 在android中,开发者可以在xml文档中部署所要添加的菜单,在后台调用即可. 1 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <item 4 android:id="@+id/action_add" 5 android:title="添加" 6 an

Android UI-SlidingMenu侧滑菜单效果

Android UI-SlidingMenu侧滑菜单效果 本篇博客给大家分享一个效果比较好的侧滑菜单的Demo,实现点击左边菜单切换Fragment. 效果如下: 主Activity代码: package com.infzm.slidingmenu.demo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.View; import android.view.View.On

【转】Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9671609 记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个朋友在评论中留言,希望我可以帮他将这个滑动菜单改成双向滑动的方式.当时也没想花太多时间,简单修改了一下就发给了他,结果没想到后来却有一大批的朋友都来问我要这份双向滑动菜单的代码.由于这份代码写得很不用心,我发了部分朋友之后实在不忍心继续发下去了,于是决定专门写一篇文章来介绍更好的Android双向滑