Android 自定义曲线箭头和直线箭头
在日常的开发中,我们很少会用到自定义箭头,但是有时候会有一些特殊要求会要求绘制箭头,所有特意记录一下
在绘制箭头的时候,一般分为直线箭头和曲线箭头,分别如下面图所示
一般来讲,曲线箭头会有三个坐标,开始坐标,中点坐标,终点坐标,而直线箭头分为两个坐标,开始坐标和结束坐标
直线箭头很简单,先绘制两个点的直线,再根据 atan2,sin,cos计算出角度,最终计算出终点和角度的终点值
曲线箭头则稍微有点不一样,先根据quadTo 赛贝尔画出曲线,再根据终点,和直线箭头一样,计算出角度,从而计算出箭头位置
//设置贝塞尔曲线的控制点坐标和终点坐标 path.quadTo(x1, y1,x2, y2 )
计算角度位置
//2.画出箭头 val r: Int = dip2px(context, 4f) val angle =(atan2((y1 - y2).toDouble(), (x1 - x2).toDouble()) * 180 / Math.PI).toFloat() val angle1 = ((angle + 45) * Math.PI / 180).toFloat() val angle2 = ((angle - 45) * Math.PI / 180).toFloat() val newX1 = (r * cos(angle1.toDouble())).toFloat() val newY1 = (r * sin(angle1.toDouble())).toFloat() val newX2 = (r * cos(angle2.toDouble())).toFloat() val newY2 = (r * sin(angle2.toDouble())).toFloat()
关键代码就这些,如果有需要,可以根据代码地址去下载Demo
Android自定义直线箭头和曲线箭头-Android文档类资源-CSDN下载
Android 自定义曲线箭头和直线箭头相关推荐
- android动画框架,GitHub - azhengyongqin/CustomAnimationFramework: Android自定义曲线路径动画框架...
Android自定义曲线路径动画框架 最近在一个项目中需要一个像QQ打开个人爱好那样的动画效果如下图: 可以看出每个小球都是以顺时针旋转出来的,说明像这样的曲线动画用Android中自带的平移动画是很 ...
- R语言ggplot2可视化在图形中添加箭头:直线箭头、弧形箭头
R语言ggplot2可视化在图形中添加箭头:直线箭头.弧形箭头 目录 R语言ggplot2可视化在图形中添加箭头:直线箭头.弧形箭头
- android自定义曲线控件,Android自定义view进阶-- 神奇的贝塞尔曲线
上一篇介绍了自定义view需要知道的基本函数.新开一篇献给借给我vpn的深圳_奋斗小哥. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/ ...
- android自定义曲线控件,Android自定义折线图(可拖动显示)
废话不多说先上图咯 图一 至于怎么做呢 咱们可以先获取下折线图数据分析一波 { "code": 200, "message": "", &q ...
- 【MFC】如何画带箭头的直线
[MFC]如何画带箭头的直线 前言 代码 获得箭头坐标 前言 如何绘制带箭头的直线,说来也简单,只需要算出箭头左右两边的坐标,再使用LineTo()函数即可.话不多说上代码. 代码 获得箭头坐标 已知 ...
- Android自定义文件路径箭头,Android自定义ViewGroup实现带箭头的圆角矩形菜单
本文和大家一起做一个带箭头的圆角矩形菜单,大概长下面这个样子: 要求顶上的箭头要对准菜单锚点,菜单项按压反色,菜单背景色和按压色可配置. 最简单的做法就是让UX给个三角形的图片往上一贴,但是转念一想这 ...
- Android Canvas绘制带箭头的直线
先看下效果图: 下面我们直接看代码 我自定义了一个View,代码如下: package com.davis.drawtrangle;import android.content.Context; im ...
- android 带箭头的按钮,android自定义带箭头对话框
本文实例为大家分享了android自定义带箭头对话框的具体代码,供大家参考,具体内容如下 import android.content.context; import android.content. ...
- canvas上,如何绘制带有箭头的直线?
话不多说,直接上代码~~~ <canvas id="canvasId" width="400" height="400" style= ...
最新文章
- how tomcat works 总结 二
- svn中提示”Files 的值 .mine 无效” 的解决方案
- contos 安装vim自动补全插件 YCM YouCompleteMe
- SAP FI/CO模块调研问卷
- 成人高考计算机考试技巧,备战2015年成人高考:计算机基础考试经验分享
- 对照片进行边缘化处理,并将边缘化处理后的结果保存
- Linux 技巧: Bash 参数和参数扩展 (Shell)
- Itemplate 自定义控件
- 如何测试c程序的内存占用_如何写出高效的嵌入式C程序
- Node.js 8有哪些重要功能和修复? 1
- WPF 使用值转换器进行绑定数据的转换IValueConverter
- Compiz Check测试Linux桌面3D兼容性
- 高质量PWM数字功放芯片
- 陆琪:年薪十万凭什么不能开…
- 全国大学生英语竞赛总结
- 英语题目作业——OJ_2392:Clear Cold Water
- 一步一步实现微信抢红包
- c 语言让电脑自动关机,C语言编写简单的定时关机程序
- golang办公工作流workflow js-ojus/flow包介绍——系列一
- 双折射取向层对方位角锚定能的测量影响