雷达扫描小动画

作者: 感冒没吃药 | 来源:发表于2019-01-03 17:29 被阅读7次

ScanView

一个类似雷达扫描的动画

效果.gif

效果图下面的阴影是录制gif时窗口的阴影,不要在意。

分析下这个动画,底图是一个圆形的图片,图片上层盖了一个贴边的内圈圆环,然后中心有一个小圆再不断的绕圈扫描,小圆与圆环之间还有一定的间隔。

圆环的实现是这样的,以一个大圆跟一个小圆相交,裁去相交的那部分,剩下的就是我们要的圆环

        int saved = canvas.saveLayer(null, null, Canvas.ALL_SAVE_FLAG);
//        //绘制Dst圆
        canvas.drawBitmap(xfermod_dstBitmap, 0, 0, mPaint);
//        //设置Xfermode
        mPaint.setXfermode(porterDuffXfermode);
          //绘制Src圆
        canvas.drawBitmap(xfermod_srcBitmap, 0, 0, mPaint);
        //绘制完成需要置null
        mPaint.setXfermode(null);
        //缓冲完毕复原
        canvas.restoreToCount(saved);

要注意的是,这种实现方式需要使用离屏缓冲,否则无法达到预期效果,也就是这两行代码

 int saved = canvas.saveLayer(null, null, Canvas.ALL_SAVE_FLAG);
 canvas.restoreToCount(saved);

另外在实现中发现,只有在两个bitmap相处理的时候,才有

PorterDuff.Mode.jpg

这个实现的效果。

所以在处理圆环的时候,我是创建了两个bitmap的。
假如是直接画两个同心圆,

        canvas.drawCircle(centerX, centerY, middleRadius, mPaint);
        mPaint.setXfermode(porterDuffXfermode);
        mPaint.setColor(Color.parseColor("#33000000"));
        canvas.drawCircle(centerX, centerY, outerRadius, mPaint);Circle(centerX, centerY, outerRadius, mPaint);

实际是这样的。

示例.png

最后是扫描的动画效果,比较简单,不停的加大扇形的绘制角度就行了。

项目地址

相关文章

  • 雷达扫描小动画

    ScanView 一个类似雷达扫描的动画 效果图下面的阴影是录制gif时窗口的阴影,不要在意。 分析下这个动画,底...

  • SuperMap iClient3D for WebGL扩展开发

    最近有同事反馈有模拟雷达扫描效果的需求,需要表达雷达扫描的半径、扫描范围以及扫描过程动画,下面将通过使用Cesiu...

  • iOS 雷达扫描效果

    最近闲的时候实现了一个雷达扫描的效果效果如下图 前言 swift 3.0 实现 了解 Layer anchorPo...

  • swift版雷达扫描

    跟大家分享一个雷达扫描得小东西, 制作这个效果分为以下几步: 1:首先画出范围 详见主要代码: let conte...

  • Android扫描雷达动画

    很简单的一个组合动画,用好基本动画啥子效果都不怕老规矩先上图 ok 来 既然往下翻那就看看如何实现的吧 首先效果分...

  • 如何将2D激光雷达实现3D应用?

    2D激光雷达除了实现定位、建图、多点触摸等应用外,还能用来做3D建模与环境扫描。肯定会有人好奇,2D激光雷达扫描出...

  • Android 颜色渲染 SweepGradient扫描/梯度渲

    SweepGradient 为什么什么叫扫描渲染呢? 相信大家都看过雷达扫描的效果,尤其是在安全软件中. 代码演示 }

  • JAVA坦克大战系列10-高效雷达(下)

    前言 本篇将给大家准备一个非常高效的雷达扫描坦克,可以有效的锁定敌人。 高效雷达坦克示例 废话就不多说了,直接上代...

  • 基于SurfaceView实现雷达扫描

    先上效果图(没有录成gif格式~其实是旋转的很漂亮。) 雷达效果原先是自定义View来实现的,但是由于要不停的刷新...

  • ios oc 雷达扫描动画

    - (void)anim { CABasicAnimation *op = [CABasicAnimation ...

网友评论

    本文标题:雷达扫描小动画

    本文链接:https://www.haomeiwen.com/subject/gklqrqtx.html