写一个垃圾桶开关盖子的动画其实很简单

转载请注明出处:王亟亟的大牛之路

上周5因为要出去玩所以礼拜4基本没干活然后写了个垃圾桶的demo觉得蛮好玩的,准备做的深一点,但是文章还是一篇一篇发,省的有些小伙伴搞不清楚实现

还是先安利,地址如下:https://github.com/ddwhan0123/Useful-Open-Source-Android 最近把Rx和下拉刷新做了细分,方便大家查”裤”

先看下运行效果

这里写图片描述

就是一个垃圾桶然后用户点击按钮之后 盖子盖上去(可以用到项目里那种拖动到垃圾桶删除的效果)


首先讲下实现思路

首先我在https://icomoon.io/app/#/select里找了个垃圾桶的icon然后照着那个样子考虑我该怎么画(这网站还是不错的,不过现在都用iconfont了吧?)

因为 垃圾桶的桶身部分是不需要动画的,所以就先画桶身再画桶盖,桶盖用ValueAnimator解决旋转问题就好了


知识点

要画自定义控件,首先要知道view的绘画流程,具体理论知识就不说了以前说过,这里再点下
要自定义View 你要先实现onMeasure再是onDraw

onMeasure决定尺寸 onDraw决定具体ui展现

如果你是viewgroup的话还需要再实现onLayout来操作子视图间的位置关系


安卓的坐标系,跟我们数学的数轴不太一样,数轴有4个象限,而安卓只有一个。

屏幕左上角为(0,0)点,那右下角必然是最大点了。

越向右 x越大,越向下y越大。

ok,简单的道理讲完了,就开始贴代码看吧


代码实现

public class GabageCan extends View {
   

    private Paint paint;
    private Path path;
    private int viewWidth, viewHeight, picWidth, picHeight;
    private Float canBAnimProgress;
    private ValueAnimator animator;


    public GabageCan(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public GabageCan(Context context) {
        super(context);
        init();
    }

    @Override
    
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值