Android仿微信雷达扫描,仿安卓微信、云播雷达扫描动画效果点击中间的黑色圆圈开始扫描动画,再次点击复位,需要这种效果的朋友快点收藏了吧。

效果图如下:

这个界面大家肯定都非常熟悉了,下面来说一下原理,其实就三层。

中间是一张图片,然后画四个圆,这个非常简单吧,不会的可看下Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解,然后最上面就是一个渐变的圆了,这个圆我们只要让他不停的旋转就可以了,那我们新建一个工程——RadarSearch

layou_main.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/photo" >

android:layout_width="match_parent"

android:layout_height="match_parent" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:src="@drawable/circle_photo" />

我们新建一个RadarView

RadarView

package com.lgl.radarsearch;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Matrix;

import android.graphics.Paint;

import android.graphics.Paint.Style;

import android.graphics.Shader;

import android.graphics.SweepGradient;

import android.os.Handler;

import android.util.AttributeSet;

import android.view.View;

/**

* 雷达搜索

*

* @author LGL

*

*/

public class RadarView extends View {

/**

* 思路:我们首先初始化画笔,并且获取到控件的宽高,在onMeasure()中设置铺满,然后在onDraw()方法中绘制四个静态圆和一个渐变圆,

* 我们通过Matrix矩阵来让他不停的旋转就达到我们想要的效果了

*/

private Paint mPaintLine, mPaintCircle;

private int w, h;

// 动画

private Matrix matrix;

// 旋转角度

private int start;

// Handler定时动画

private Handler handler = new Handler();

private Runnable run = new Runnable() {

@Override

public void run() {

start = start + 1;

matrix = new Matrix();

// 参数:旋转角度,围绕点坐标的x,y坐标点

matrix.postRotate(start, w / 2, h / 2);

// 刷新重绘

RadarView.this.invalidate();

// 继续循环

handler.postDelayed(run, 60);

}

};

public RadarView(Context context, AttributeSet attrs) {

super(context, attrs);

initView();

// 获取高宽

w = context.getResources().getDisplayMetrics().widthPixels;

h = context.getResources().getDisplayMetrics().heightPixels;

// 一致旋转

handler.post(run);

}

private void initView() {

mPaintLine = new Paint();

mPaintLine.setColor(Color.WHITE);

mPaintLine.setAntiAlias(true);

mPaintLine.setStyle(Style.STROKE);

mPaintCircle = new Paint();

mPaintCircle.setColor(Color.RED);

mPaintCircle.setAntiAlias(true);

matrix = new Matrix();

}

/**

* 测量

*

* @author LGL

*/

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

// 设置铺满

setMeasuredDimension(w, h);

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

// 画四个圆形

canvas.drawCircle(w / 2, h / 2, w / 2, mPaintLine);

canvas.drawCircle(w / 2, h / 2, w / 3, mPaintLine);

canvas.drawCircle(w / 2, h / 2, w * 7 / 10, mPaintLine);

canvas.drawCircle(w / 2, h / 2, w / 4, mPaintLine);

// 绘制渐变圆

Shader mShader = new SweepGradient(w / 2, h / 2, Color.TRANSPARENT,

Color.parseColor("#AAAAAAAA"));

// 绘制时渐变

mPaintCircle.setShader(mShader);

// 增加旋转动画,使用矩阵实现

canvas.concat(matrix); // 前置动画

canvas.drawCircle(w / 2, h / 2, w * 7 / 10, mPaintCircle);

}

}

android 雷达搜索动画,Android实现微信雷达辐射搜索好友实例(逻辑清晰实现简单)...相关推荐

  1. android 辐射动画_Android仿微信雷达辐射搜索好友(逻辑清晰实现简单)

    不知不觉这个春节也已经过完了,遗憾家里没网,没能及时给大家送上祝福,今天回到深圳,明天就要上班了,小伙伴们是不是和我一样呢?今天讲的是一个大家都见过的动画,雷达搜索好友嘛,原理也十分的简单,你看完我的 ...

  2. 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字

    仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Frag ...

  3. 仿百度壁纸client(五)——实现搜索动画GestureDetector手势识别,动态更新搜索keyword...

    仿百度壁纸client(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager ...

  4. 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字...

    仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Frag ...

  5. android 上下扫描动画,Android扫描雷达动画

    很简单的一个组合动画,用好基本动画啥子效果都不怕 老规矩先上图 效果图.gif ok 来 既然往下翻那就看看如何实现的吧 首先效果分为两部分 第一部分中间指针(其实这里就是一张图片) 第二部分就是波纹 ...

  6. android 仿搜索动画,Android仿京东顶部搜索框滑动伸缩动画效果

    最近使用京东发现,京东顶部的搜索框有一个新的伸缩效果,根据用户的手势滑动,伸缩搜索框.觉得效果还不错,就看了下其他的应用有没有这种伸缩的效果,发现安居客也使用了类似的一种效果,然后就想着实现这样的一种 ...

  7. android 清理缓存动画,Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解...

    最近接了一个项目其中有功能要实现一个清理内存,要求和微信的效果一样.于是想到用surfaceView而不是继承view.下面小编给大家解析下实现思路. surfaceView是为了解决频繁绘制动画产生 ...

  8. android tab 切换动画,Android之ViewPager+TabLayout组合实现导航条切换效果(微信和QQ底部多标签切换)...

    前言 之前在另外一篇中用Fragment和button实现了点击切换Fragment的效果,比较简陋.这次改用ViewPager+TabLayout 实现联动的效果. 实现效果 ViewPager 多 ...

  9. android 语音搜索动画,Android自定义控件实现UC浏览器语音搜索效果

    最近项目上要实现语音搜索功能,界面样式要模仿一下UC浏览器的样式,UC浏览器中有一个控件,会随着声音大小浮动,然后寻思偷个懒,百度一下,结果也没有找到类似的,只能自己动手了. 先上图看我实现的效果: ...

最新文章

  1. lingo calcinit
  2. Nginx在Windows平台的配置与使用
  3. DNN结构演进History—CNN-GoogLeNet :Going Deeper with Convolutions
  4. 编写css让一个已知宽高的div元素水平居中?垂直居中
  5. Rxjs BehaviorSuject 和 Observable 的区别
  6. CentOS 7 上搭建 ZooKeeper 集群
  7. ECSHOP商城网站建设之自定义调用广告方法(二)
  8. Proteus8.6SP2仿真使用汇总
  9. 量土地用计算机,土地面积换算(土地面积计算器)
  10. 应聘软件测试英文自我介绍,软件测试英文面试自我介绍2篇
  11. mysql连接字符串_[MySQL] - MySQL连接字符串总结
  12. 十个Python图像处理工具,不可不知!
  13. 一个简体/繁体字在线转换工具源码
  14. iscsi 网络存储
  15. tiktok海外直播红人带货
  16. Iris微服务框架_golang web框架_完整示例Demo
  17. 塔望食业洞察|中国乳制品市场分析、竞争格局、发展趋势及思考
  18. iphone转android 短信通知,如何将短信从iPhone转移/切换到Android
  19. uniCloud云函数
  20. CTPAT认证辅导,外国制造商必须确保商业伙伴遵照C-TPAT安全标准制定安全程序和规程

热门文章

  1. /dev/mem可没那么简单
  2. 2、Redis的常用命令
  3. 百度地图-----密钥申请
  4. 犀牛视频下载器丨钜惠惊喜不断
  5. 视频编辑软件中如何制作字幕末屏停留
  6. el-select 展示 2*2、1*1、3*3、4*4 视频 分屏展示
  7. 【踩坑】cat3.x服务端部署, springboot客户端接入
  8. 天津市公安局云平台8080万大单,花落谁家?
  9. 京东云数据库 RDS助力企业便捷运维
  10. 通过NFS实现Linux和window共享文件夹