android 自定义View六芒星(六角星)
public class Xing2View extends CustomView {public Xing2View(Context context) {super(context);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);mDeafultPaint.setAntiAlias(true);//抗锯齿canvas.translate(mViewWidth / 2, mViewHeight / 2);//移动画布到页面中心canvas.rotate(-90);
// 6角星外接圆大小int t = mViewWidth / 3;
// 6角星6个角的角度360/6canvas.drawColor(Color.BLACK);canvaXing(t,canvas);canvaXing((int) (t*0.8),canvas);}private void canvaXing(int t,Canvas canvas){float r = 60;
// 弧度的计算公式为: 2*PI/360*角度;double aa = 2 * PI / 360;
// 计算6个顶点坐标float a[] = {(float) (Math.cos(0 * aa) * t), (float) (sin(0 * aa) * t)};float b[] = {(float) (Math.cos(r * aa) * t), (float) (sin(r * aa) * t)};float c[] = {(float) (Math.cos(r * 2 * aa) * t), (float) (sin(r * 2 * aa) * t)};float d[] = {(float) (Math.cos(r * 3 * aa) * t), (float) (-sin(r * 3 * aa) * t)};float e[] = {(float) (Math.cos(r * 4 * aa) * t), (float) (sin(r * 4 * aa) * t)};float f[] = {(float) (Math.cos(r * 5 * aa) * t), (float) (sin(r * 5 * aa) * t)};
// 画6角星mDeafultPaint.setStrokeWidth(2);mDeafultPaint.setColor(Color.YELLOW);mDeafultPaint.setStyle(Paint.Style.STROKE);Path path = new Path();path.moveTo(a[0], a[1]);path.lineTo(c[0], c[1]);path.lineTo(e[0], e[1]);path.close();path.moveTo(b[0], b[1]);path.lineTo(d[0], d[1]);path.lineTo(f[0], f[1]);path.close();canvas.drawPath(path, mDeafultPaint);canvas.drawCircle(0,0,t,mDeafultPaint);}}
android 自定义View六芒星(六角星)相关推荐
- 精通Android自定义View(十六)invalidate方法和requestLayout方法
1 简述 requestLayout方法会导致View的onMeasure.onLayout.onDraw方法被调用:invalidate方法则只会导致View的onDraw方法被调用 2 reque ...
- android自定义View之(六)------高仿华为荣耀3C的圆形刻度比例图(ShowPercentView)
为什么写这篇文章: 显示当前的容量所占的比例,表现当前计划的进度,一般都会采用百分比的方式,而图形显示,以其一目了然的直观性和赏心悦目的美观形成为了我们的当然的首选. 在图形表示百分比的方法中,我们有 ...
- 【朝花夕拾】Android自定义View篇之(六)Android事件分发机制(中)从源码分析事件分发机制...
前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/11039252.html]谢谢! 在上一篇文章[[朝花夕拾]Android自定义View篇之(五 ...
- 【朝花夕拾】Android自定义View篇之(六)Android事件分发机制(中)从源码分析事件分发逻辑及经常遇到的一些“诡异”现象
前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/11039252.html]谢谢! 在上一篇文章[[朝花夕拾]Android自定义View篇之(五 ...
- android自定义起止时间的时间刻度尺,Android 自定义View篇(六)实现时钟表盘效果...
前言 Android 自定义 View 是高级进阶不可或缺的内容,日常工作中,经常会遇到产品.UI 设计出花里胡哨的界面.当系统自带的控件不能满足开发需求时,就只能自己动手撸一个效果. 本文就带自定义 ...
- opengles绘制可旋转的六角星
package com.bn.Sample5_1;import android.opengl.Matrix;//存储系统矩阵状态的类 public class MatrixState {private ...
- android自定义抽奖,Android自定义view制作抽奖转盘
本文实例为大家分享了Android自定义view制作抽奖转盘的具体代码,供大家参考,具体内容如下 效果图 TurntableActivity package com.bawei.myapplicati ...
- Android自定义View:ViewGroup(三)
自定义ViewGroup本质是什么? 自定义ViewGroup本质上就干一件事--layout. layout 我们知道ViewGroup是一个组合View,它与普通的基本View(只要不是ViewG ...
- android 自定义view实现拖动放大缩小_自定义itemClickView
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.自定义View类实现 二.自定义View标签 三.自定义View 布局 四.自定义View 选择器 ...
最新文章
- yeomen/bower/grunt
- 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析
- JavaScrpt简单介绍
- oracle 最近的sql语句,oracle最近执行的sql语句
- Mysql 多实例multi_mysqld_multi多实例运行
- python的最受欢迎的库_2018年最受欢迎的15个Python库
- win10运行Git出现警告 :warning: LF will be replaced by CRLF in ...
- mysql存储引擎分类
- 数学建模计算机部分知识,数学建模相关论文范文资料,与数学建模与计算机关系相关毕业论文题目范文...
- MATLAB图像去雾算法RETINEX实现
- IDEA社区版利用maven创建web
- vue实现关键字查询列表数据
- c语言输入身高输出标准体重,项目2:就拿胖子说事---(4)计算出标准体重,输出体重状态(正常/超重/超轻)...
- 百度离线地图金字塔瓦片发布
- 如何在iPhone上将GIF设置为动态壁纸
- 【剑桥摄影协会】色彩管理之色彩空间
- dad my_My dad英语绘本.ppt
- 简述防火墙--未知危险的屏障
- VS2017 下QT工程不能生成moc文件的解决方法
- Echarts关于仪表盘