仿微信雷达扫描

移动开发
仿微信雷达扫描,仿安卓微信、云播雷达扫描动画效果点击中间的黑色圆圈开始扫描动画,再次点击复位,需要这种效果的朋友可以自己下载看一下。

源码简介:仿微信雷达扫描,仿安卓微信、云播雷达扫描动画效果点击中间的黑色圆圈开始扫描动画,再次点击复位,需要这种效果的朋友可以自己下载看一下。

源码效果:

源码片段:

  1. package com.example.tz_demo_8_7; 
  2.   
  3. import android.content.Context; 
  4. import android.graphics.Canvas; 
  5. import android.graphics.Color; 
  6. import android.graphics.Matrix; 
  7. import android.graphics.Paint; 
  8. import android.graphics.Paint.Style; 
  9. import android.graphics.Shader; 
  10. import android.graphics.SweepGradient; 
  11. import android.os.Handler; 
  12. import android.util.AttributeSet; 
  13. import android.widget.FrameLayout; 
  14.   
  15. public class MyRadarView extends FrameLayout { 
  16.       
  17.     private Paint mPaintNormal; // 绘制普通圆圈和线的画笔 
  18.     private Paint mPaintCircle;// 绘制渐变圆 
  19.     private int w,h;    // 手机屏幕的宽高,雷达视图父容器的宽高 
  20.     private Matrix matrix; 
  21.     private Handler handler=new Handler(); 
  22.     private int start; 
  23.     private Runnable r=new Runnable() { 
  24.           
  25.         @Override 
  26.         public void run() { 
  27.             // 执行循环旋转动画,并且刷新UI 
  28.             start=start+2
  29.             matrix=new Matrix(); 
  30.             matrix.postRotate(start, w/2, h/2);// 设置画布旋转 
  31.             MyRadarView.this.invalidate();  // 刷新UI 
  32.             handler.postDelayed(r,20); 
  33.         } 
  34.     }; 
  35.       
  36.   
  37.     public MyRadarView(Context context, AttributeSet attrs) { 
  38.         super(context, attrs); 
  39.         // 初始化画笔 
  40.         initPaint(); 
  41.         setBackgroundResource(R.drawable.bg); 
  42.         // 获取手机屏幕宽高 
  43.         this.w=context.getResources().getDisplayMetrics().widthPixels; 
  44.         this.h=context.getResources().getDisplayMetrics().heightPixels; 
  45.         handler.post(r); 
  46.     } 
  47.   
  48.     /** 
  49.      * @author Xubin   Single QQ:215298766 
  50.      */ 
  51.     private void initPaint() { 
  52.         mPaintNormal=new Paint();// 创建画笔 
  53.         mPaintNormal.setColor(Color.parseColor("#A1A1A1")); 
  54.         mPaintNormal.setStrokeWidth(3);// 设置线条 
  55.         mPaintNormal.setAntiAlias(true);// 设置抗锯齿 
  56.         mPaintNormal.setStyle(Style.STROKE); 
  57.           
  58.         // 绘制渐变圆 
  59.         mPaintCircle=new Paint(); 
  60.         mPaintCircle.setColor(0x9D00ff00);// 16进制 
  61.         mPaintCircle.setAntiAlias(true); 
  62.     } 
  63.       
  64.     /** 
  65.      * 测量控件的宽高 
  66.      */ 
  67.     @Override 
  68.     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
  69.         // 设置此视图的宽高 
  70.         setMeasuredDimension(w, h); 
  71.     } 
  72.       
  73.     /** 
  74.      * 确定控件的视图 
  75.      */ 
  76.     @Override 
  77.     protected void onDraw(Canvas canvas) { 
  78.         // 屏幕中心,x:w/2,y:h/2 
  79.         canvas.drawCircle(w/2, h/2, w/6, mPaintNormal);     // 绘制小圆 
  80.         canvas.drawCircle(w/2, h/22*w/6, mPaintNormal);   // 绘制中圆 
  81.         canvas.drawCircle(w/2, h/211*w/20, mPaintNormal); // 绘制中大圆 
  82.         canvas.drawCircle(w/2, h/27*h/16, mPaintNormal);  // 绘制大圆 
  83.           
  84.         // 绘制渐变色的圆 
  85.         Shader shader=new SweepGradient(w/2, h/2, Color.TRANSPARENT, Color.parseColor("#AAAAAAAA")); 
  86.         mPaintCircle.setShader(shader); 
  87.         canvas.concat(matrix); 
  88.         canvas.drawCircle(w/2, h/27*h/16, mPaintCircle);  //绘制渐变圆 
  89.           
  90.         super.onDraw(canvas); 
  91.     }    

下载地址:http://down.51cto.com/data/2096545

责任编辑:倪明 来源: devstore
相关推荐

2015-07-22 10:46:20

二维码扫描

2015-08-07 15:39:26

仿微信语音界面源码

2016-02-15 11:47:54

微信源码下拉视频

2021-11-23 10:00:55

鸿蒙HarmonyOS应用

2015-09-01 16:55:42

微信朋友圈图片

2022-11-02 16:06:54

ArkUIETS

2020-12-13 11:57:57

Nodejs微信开发

2021-11-19 09:48:33

鸿蒙HarmonyOS应用

2013-08-08 10:13:25

微信

2015-10-23 13:36:22

2021-11-04 09:55:50

鸿蒙HarmonyOS应用

2020-07-27 15:06:14

微信张小龙焦虑

2021-05-31 08:23:47

应用开发前端

2015-08-07 15:32:19

欢迎界面仿微信仿qq空间

2021-05-29 07:39:07

微信微信圈子腾讯

2013-08-26 15:21:41

微博微信易信

2015-02-13 10:20:15

微信

2021-05-29 07:55:52

微信移动应用

2012-07-26 14:44:11

微信张小龙
点赞
收藏

51CTO技术栈公众号