先来看一下支付宝的,这是看到别的感觉评分啥会用得到,然后写了一下

现在的话六角形是写死,阴影范围用的随机数,字也是自定义的,这个都可以放到构造方法,写成get,set方法,后期去改,

ok来看下view的代码:

package com.fanyafeng.orlitedemo.myview;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;import java.util.Random;/*** Created by 365rili on 16/4/27.*/
public class PolygonView extends View {//    竖线private Paint verPaint;//    横线private Paint porPaint;//    斜线private Paint slantPaint;//    写字private Paint textPaint;private static String[] listString = new String[]{"科技", "游戏", "音乐", "动画", "鬼畜", "影视"};public PolygonView(Context context) {super(context);}public PolygonView(Context context, AttributeSet attrs) {super(context, attrs);verPaint = new Paint(Paint.ANTI_ALIAS_FLAG);porPaint = new Paint(Paint.ANTI_ALIAS_FLAG);slantPaint = new Paint(Paint.ANTI_ALIAS_FLAG);textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);}public PolygonView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);float strokeWidth = 2;verPaint.setAntiAlias(true);verPaint.setColor(Color.GREEN);verPaint.setStrokeWidth(strokeWidth);porPaint.setAntiAlias(true);porPaint.setColor(Color.GREEN);porPaint.setStrokeWidth(strokeWidth);slantPaint.setAntiAlias(true);slantPaint.setColor(Color.BLUE);slantPaint.setStrokeWidth(strokeWidth);slantPaint.setStyle(Paint.Style.FILL);textPaint.setTextSize(40);textPaint.setTextAlign(Paint.Align.CENTER);textPaint.setStrokeWidth(10);float startX = getLeft();float endX = getRight();float startY = getTop();float endY = getBottom();float width = getWidth();float height = getHeight();Random random = new Random();//        圆心float circleX = width / 2;float circleY = height / 2;
//        半径float circleRadius = width > height ? (height - 180) / 2 : (width - 180) / 2;
//        外接圆
//        canvas.drawCircle(circleX, circleY, circleRadius, verPaint);//        每一度所对应的数值double eachAngleLength = 2 * Math.PI / 360;
//        *eachAngleLenght相当于响应的度数float eachAngle = 60;
//        int[] xList = new int[]{203, 100, 380, 89, 345, 300, 20, 144};int[] xList = new int[]{random.nextInt(400), random.nextInt(400), random.nextInt(400), random.nextInt(400), random.nextInt(400), random.nextInt(400), random.nextInt(400), random.nextInt(400)};for (int i = 0; i < 6; i++) {
//            与外接圆交点的x,y值float finalPointX = (float) (circleX + circleRadius * Math.sin(eachAngle * eachAngleLength * i));float finalPointY = (float) (circleY + circleRadius * Math.cos(eachAngle * eachAngleLength * i));
//          画竖线canvas.drawLine(circleX, circleY, finalPointX, finalPointY, verPaint);//            横线起点x,yfloat porPointStartX = (float) (circleRadius * Math.sin(eachAngle * eachAngleLength * i));float porPointStartY = (float) (circleRadius * Math.cos(eachAngle * eachAngleLength * i));
//            横线终点x,yfloat porPointEndX = (float) (circleRadius * Math.sin(eachAngle * eachAngleLength * (i + 1)));float porPointEndY = (float) (circleRadius * Math.cos(eachAngle * eachAngleLength * (i + 1)));for (int j = 1; j < 5; j++) {
//                画横线canvas.drawLine(circleX + porPointStartX / 4 * j, circleY + porPointStartY / 4 * j, circleX + porPointEndX / 4 * j, circleY + porPointEndY / 4 * j, porPaint);}//            写字,字体的x,yfloat textPointX = (float) (circleX + (circleRadius + 60) * Math.sin(eachAngle * eachAngleLength * i));float textPointY = (float) (circleY + (circleRadius + 60) * Math.cos(eachAngle * eachAngleLength * i));canvas.drawText(listString[i], 0, listString[i].length(), textPointX, i == 3 ? textPointY + 30 : textPointY, textPaint);/*** 在这着重说一下阴影部分* 阴影的话应该是个数组,如果把这个view写成控件的话,就是每个项目占得百分比,但是数据需要搞对,ok现在模拟一下数据*/Path path = new Path();path.moveTo(circleX, circleY);path.lineTo((float) (circleX + xList[i] * Math.sin(eachAngle * eachAngleLength * i)), (float) (circleY + xList[i] * Math.cos(eachAngle * eachAngleLength * i)));path.lineTo((float) (circleX + (i != 5 ? xList[i + 1] : xList[0]) * Math.sin(eachAngle * eachAngleLength * (i + 1))), (float) (circleY + (i != 5 ? xList[i + 1] : xList[0]) * Math.cos(eachAngle * eachAngleLength * (i + 1))));path.close();canvas.drawPath(path, slantPaint);}}
}

android模拟支付宝芝麻信用(上)相关推荐

  1. Android 接入 支付宝芝麻信用互查

    Android 接入 支付宝芝麻信用互查 个人笔记 防止忘记 之前H5调用芝麻授权可以 但是随着芝麻分功能计划下架 需要接入作为新产品的 芝麻信用互查 无奈文档有点少 只能东拼西凑的去找有关于旧版的一 ...

  2. 支付宝 android ui,Android 仿支付宝芝麻信用分仪表盘效果 CreditSesameRingView

    软件介绍 自定义View之仿支付宝芝麻信用分仪表盘效果,喜欢的话,请给个star,谢谢. 使用添加项目依赖Add it in your root build.gradle at the end of  ...

  3. Android自定义view之仿支付宝芝麻信用仪表盘 ---by ccy

    自定义view练习 仿支付宝芝麻信用的仪表盘 对比图: 首先是自定义一些属性,可自己再添加,挺基础的,上代码 <?xml version="1.0" encoding=&qu ...

  4. 自定义xy组 android,Android自定义view之仿支付宝芝麻信用仪表盘示例

    自定义view练习 仿支付宝芝麻信用的仪表盘 对比图: 首先是自定义一些属性,可自己再添加,挺基础的,上代码 接着在构造方法里初始化自定义属性和画笔: private void initAttr(At ...

  5. android自定义表盘部件,Android自定义view仿支付宝芝麻信用表盘

    演示效果 实现步骤: 1.画不同宽度和半径的内外圆弧 2.通过循环旋转canvas,在固定位置绘制短线刻度,长线刻度,刻度文字 3.绘制view中心几个文本,并调整位置 4.实时更新当前旋转角度刷新小 ...

  6. iOS仿支付宝芝麻信用仪表盘效果

    概述 自定义View之高仿支付宝芝麻信用分数仪表盘动画效果 详细 代码下载:http://www.demodashi.com/demo/10654.html 仿支付宝芝麻信用仪表盘效果 一.主要思路 ...

  7. 如何提高支付宝芝麻信用的分数

    支付宝的芝麻信用,可以用来做很多的事情,分数越高信用额度也越高,还有其他什么借款啊,租车啊,酒店之类的生活常用的服务都能享用到.不过芝麻信用的分数却总是迟迟不增,怎么才能提高支付宝芝麻信用的分数呢? ...

  8. 支付宝芝麻信用页面自定义View的简单制作(续)

    前两个月刚刚写了一篇关于支付宝芝麻信用页面自定义View的总结,感觉写的不太好,链接如下: http://blog.csdn.net/anny_lin/article/details/49474555 ...

  9. 模仿支付宝芝麻信用 绘图 多种因素占比多边形

    开发中涉及到了绘制图形,实现用多边形展示各个数值的占比,这种情形在支付宝芝麻信用中用到,实际并不复杂,本质就是确定各个点的坐标,然后进行连线.直接上代码如下: 运行效果图 其中需要注意以下几点: 1. ...

最新文章

  1. shell脚本中的引用
  2. StaticQueue
  3. 5-global_data介绍
  4. IO概述、异常、File文件类_DAY19
  5. JBoss Fuse –一些鲜为人知的技巧
  6. 输出一个整数的逆序数
  7. C# Types Type Members
  8. selinux-setroubleshoot安装及详解
  9. 机器视觉开源处理库汇总-介绍n款计算机视觉库/人脸识别开源库/软件 -几种图像处理类库的比较-视觉相关网站...
  10. 26.Linux/Unix 系统编程手册(上) -- 监控子进程
  11. linux 基础命令(三)
  12. 完全免费的公众号文章批量下载器
  13. GIS软件开发入门需要学习哪些内容?
  14. 索引缓存_如何重置您的Google桌面索引缓存
  15. 开源WebGIS开发——栅格图层
  16. Linux CentOS 系统实战笔记-基础篇
  17. 《大学物理》课程考试大纲
  18. 利用C++实现简单的文件加密
  19. 最新C语言深入剖析班项目实战教程(国嵌 唐老师主讲)
  20. 将url网址转换成对象

热门文章

  1. vijosP1006 晴天小猪历险记之Hill
  2. YOLOV7训练TT100K交通标识符数据集
  3. ‘SchemaItem‘ object, such as a ‘Column‘ or a ‘Constraint‘ expected, go <class ‘int‘>
  4. 学习C语言-学习指针
  5. 《鹰猎长空》分析国产儿童电影的历史经验与道路
  6. 音频开发_如何获取单词的音频mp3文件
  7. 用python自制微信机器人,定时发送天气预报
  8. 电子垃圾回收处置 蛋糕虽大为何难啃?
  9. JS中的遍历、点击、排他
  10. 关键词之-关键词堆砌!