Android自定义View-仿华为手机管家病毒查杀类似于雷达扫描动画效果

最近在使用华为手机管家病毒查杀时有一个类似雷达扫描的动画,发现该动画旋转轴未对准圆心,如下图:


这样不仔细看,看不出来,咱们放大看一下,放大后如下:


现在我们可以清楚看到这个问题,于是想自己实现一把,好了,为了便于理解,这里就按照动画所见内容依次展开来说。
先简单的分析一下这里的元素,主要有3个园,三条直线,一个渐变扇形,一个渐变圆弧,知道这些以后,我们就可以开始进行代码编写了,那么首先定义一下所需要的画笔,画布及一些数据

//初始化画笔
private void initPaint() {
        mPaintCircleOrLine = new Paint();
        mPaintCircleOrLine.setStrokeWidth(2);
        mPaintCircleOrLine.setAntiAlias(true);
        mPaintCircleOrLine.setStyle(Paint.Style.STROKE);
        mPaintCircleOrLine.setColor(getResources().getColor(R.color.colorCircleOrLine));


        mPaintArc1 = new Paint();
        mPaintArc1.setStyle(Paint.Style.FILL);
        mPaintArc1.setAntiAlias(true);


        mPaintArc2 = new Paint();
        mPaintArc2.setStrokeWidth(4);
        mPaintArc2.setStyle(Paint.Style.STROKE);
        mPaintArc2.setAntiAlias(true);
        mPaintArc2.setColor(getResources().getColor(R.color.colorArcBorder));


        mPaintLine = new Paint();
        mPaintLine.setStrokeWidth(4);
        mPaintLine.setStyle(Paint.Style.STROKE);
        mPaintLine.setAntiAlias(true);
        mPaintLine.setColor(getResources().getColor(R.color.colorLine));


    }


注意这里画园和十字直线使用的同一个画笔的样式,如果你需要不同的样式,可以分开定义。初始化操作完成了之后,就是给变量赋值,我选择在onSizeChange()方法里面对变量进行赋值,代码如下:


    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值