卫星菜单的实现

卫星菜单的实现

在网上有许多卫星菜单的实现,但在网上很多是不是基于属性动画的。这也就说明了这些实现是通过设置view的是否可见属性来决定这个view的位置,并没有真正的进行移动。这篇文章并不会写如何实现,只是会提到实现过程的遇到的一些坑。
下面先展示一些实现的效果:

image
image

第一个坑,当一个 float类型的数除以int类型的数,当int类型的数大有float类型的数会是零。切记切记


第二个坑,

mPaint.setShadowLayer(10f, 2f, 2f, Color.BLACK);

记得很多绘图的API是不支持硬件加速的,也就是如果不设置,那么基本是无法出现该有的效果的。这个阴影这是一个巨坑,不知道的简直是对着代码空流泪。

setLayerType(LAYER_TYPE_SOFTWARE, mPaint);
这句代码就可以显现了,也可以在注册文件中写,但总觉得不太好。


第三个其实更多的是常识,就是在xml中添加view的时候,getChildAt()是从上到下,从0到getChildCount();


在自定义的组件初始化过程中,也就是开始构造函数的地方是获取不到getChildCount()的值的,也就是不能对其所有的子view进行操作的。
这就是写这个控件的坑,其余的就是对于objectanimator的用法。当然这这个代码中还有许多要完善的,许多代码重复的问题,请各位看官多多包涵!

github 传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,707评论 25 709
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,586评论 7 249
  • 芊芊是被五婆捡回来的孩子,那年夏天五婆拄着拐杖去河边洗菜,在缓慢流动的河流上游飘下来一个木盆,木盆的襁褓里面包着一...
    王别闹阅读 2,370评论 12 6
  • 问题 你想要安装和使用一个R包。 方案 如果你正在使用支持R的图形界面软件,应该存在通过菜单栏方式安装R包的选项(...
    王诗翔阅读 2,569评论 0 0