1、依赖

compile 'org.xclcharts:lib:2.4'

自定义仪表盘view

/**
 * @ClassName meixi
 * @Description  仪表盘例子
 * @author <br/>(1085220040@qq.com.com)
 */
public class GaugeChart01View  extends GraphicalView {private String TAG = "GaugeChart01View";
    private GaugeChart chart = new GaugeChart();

    private List<String> mLabels = new ArrayList<String>();
    private List<Pair> mPartitionSet = new ArrayList<Pair>();
    private float mAngle = 0.0f;

    public GaugeChart01View(Context context) {super(context);
        // TODO Auto-generated constructor stub
        initView();
    }public GaugeChart01View(Context context, AttributeSet attrs){super(context, attrs);
        initView();
    }public GaugeChart01View(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);
        initView();
    }private void initView(){chartLabels();
        chartDataSet();
        chartRender();
    }@Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {super.onSizeChanged(w, h, oldw, oldh);
        //图所占范围大小
        //xml中的设置:  android:layout_width="300dip"
        //          android:layout_height="300dip"
        chart.setChartRange(w ,h );
        //绘图区范围
        //左右各缩进10%
        //int offsetX = DensityUtil.dip2px(getContext(), (float) (300 * 0.1));
        //偏移高度的25%下来
        //int offsetY = DensityUtil.dip2px(getContext(), (float) (300 * 0.25));
        // chart.setPadding(offsetY, 0, 0,  0);

    }//从seekbar传入的值
    public void setAngle(float currentAngle){mAngle = currentAngle;
    }public void chartRender(){try {//设置标题
            chart.setTitle("刻度盘 ");

            //刻度步长
            chart.setTickSteps(10d);//密度

            //标签(标签和步长分开,步长即刻度可以密点,标签可以松点)
            chart.setCategories(mLabels);
            //分区
            chart.setPartition(mPartitionSet);

            //设置当前指向角度(0-180).
            //chart.setCurrentAngle(90f);
            chart.setCurrentAngle(mAngle);
            //绘制边框
            chart.showRoundBorder();

            chart.getPinterCirclePaint().setColor(getResources().getColor(R.color.t_blue));//指针圆点画笔
            chart.getPointerLinePaint().setColor(getResources().getColor(R.color.anlv));//指针画笔
            chart.getTickPaint().setColor(getResources().getColor(R.color.anlv));//向内刻度画笔
            chart.getDountPaint().setColor(getResources().getColor(R.color.anlv));//外刻度线画笔
            chart.getLabelPaint().setColor(getResources().getColor(R.color.anlv));//外标签画笔

        } catch (Exception e) {// TODO Auto-generated catch block
            Log.e(TAG, e.toString());
        }}//分区[角度(0-mStartAngle),颜色]
    private void chartDataSet(){int Angle = 180/3;
        mPartitionSet.add(new Pair<Float,Integer>((float)Angle, Color.rgb(73, 172, 72)));
        mPartitionSet.add(new Pair<Float,Integer>((float)Angle, Color.rgb(247, 156, 27)));
        mPartitionSet.add(new Pair<Float,Integer>((float)Angle, Color.rgb(224, 62, 54)));
    }private void chartLabels(){//标签
        mLabels.add("起始");
        mLabels.add("安全");
        mLabels.add("警惕");
        mLabels.add("危险");
        mLabels.add("终止");
    }@Override
    public void render(Canvas canvas) {try{chart.render(canvas);
        } catch (Exception e){Log.e(TAG, e.toString());
        }}
}
<clan.yuanxin.com.mydkaifa.pictures.GaugeChart01View
    android:id="@+id/chart_view"
    android:layout_width="400dip"
    android:layout_height="200dip"
    android:layout_centerInParent="true"
    />

Java代码

GaugeChart01View chart = null;
chart = (GaugeChart01View)findViewById(R.id.chart_view);
chart.setAngle(progress);//30
chart.chartRender();
chart.invalidate();

Android 仪表盘相关推荐

  1. Android 仪表盘 图片 中心 旋转

    因为项目需求,需要做一个基于仪表盘方式的数据显示方式,在网上一会 google,一会 baidu 最后得来的也就是对 Matrix 的几个解释,之前还被 hdpi,mdpi,ldip 搞得晕头转向的. ...

  2. Android仪表盘组件,Android自定义控件-椭圆形仪表盘

    本文章最重要的并不是提供椭圆形仪表盘的view,而是提供一些自定义view的思路,并且也算是自我总结 先来看看实际的完成效果 你可能在github或者其他地方看到过有博主很早前就画过了圆形的仪表盘进度 ...

  3. android 仪表盘 ui,仪表盘(Dashboard)UI设计的8个实用技巧

    我们今天生活在技术时代每天都在发展着人工智能(AI),商业智能和BlockChain等各种卓越技术,这些技术正在成为我们日常生活中不可避免的一部分.这些智能技术使用复杂的算法快速分析大量数据,并为用户 ...

  4. [转]2014年最新810多套android源码2.46GB免费一次性打包下载

    转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...

  5. 转--2014年最新810多套android源码2.46GB免费一次性打包下载

    转载自:http://www.eoeandroid.com/thread-497046-1-1.html 感谢该博客主人无私奉献~~ 下面的源码是从今年3月份开始不断整理源码区和其他网站上的安卓例子源 ...

  6. ym——android源代码大放送(实战开发必备)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 目录 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.c ...

  7. android源码大放送啦(实战开发必备)

    文件夹 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.com文件列表生成工具.bat │  使用说明.txt │  免费下载更多源码.url │  目录列表.txt │ ...

  8. Android项目源码分享

    ├─android web应用 │      jqmDemo_static.zip │      jqmMobileDemo-master.zip │      jqmMobileDemo1_1-ma ...

  9. Android开发必备(干货源码放送大)

    Android源码大放送(实战开发必备) 文件夹 PATH 列表 │  javaapk.com文件列表生成工具.bat │  使用说明.txt │  免费下载更多源码.url │  目录列表.txt ...

最新文章

  1. 如何提高强化学习的可靠性?
  2. 2018中国计算机大会,阿里云分布式存储架构师:自研分布式文件系统服务
  3. becon帧 wifi_WireShark对于WIFI数据帧的分析
  4. JSON开发详解-张晨光-专题视频课程
  5. 服务器 ha linux,Linux 高可用(HA)集群之Heartbeat详解
  6. 下载并搭建VauditDemo
  7. 给初学者的20个CSS实用建议
  8. stl_algorithm算法之排序算法
  9. dnf 卸载软件linux,Linux软件安装与卸载的基本概念
  10. python实现微信打飞机
  11. latex生成pdf中文标签乱码pdf复制乱码
  12. C#使用MX Component与三菱PLC建立通讯(以FX5U举例)
  13. selenium爬虫入门简单实例(获取对分易习题)
  14. C++友元与操作符重载
  15. 周易六十四卦——屯卦
  16. 电压(电流)运算放大器为什么要增大(减小)输入阻抗?
  17. fastJson字符串与Map,数组,对象,复杂对象之间的转换
  18. [Vue warn]: Unknown custom element: <rules-set> - did you register the component correctly? For recu
  19. macbook的 safari浏览器退出后又自动启动,强制退出以后也重启,重启电脑也重启
  20. 在ISE中设置字体大

热门文章

  1. [css] 用CSS画出一个任意角度的扇形,可以写多种实现的方法
  2. [css] 你知道什么是CSS-in-JS吗?说说你对它的了解
  3. 前端学习(2616):请求数据接口
  4. 前端学习(2476):表单数据绑定处理
  5. 前端学习(2467):在前端页面中引入百度地图
  6. 前端学习(2167):前端路由和后端路由
  7. 前端学习(2002)vue之电商管理系统电商系统之绘制商品分类的级联选择器
  8. 第七十五期:Java 2019 生态圈使用报告,这结果你赞同吗?
  9. 项目管理(7):备战pmp
  10. java python 运行 内存_Python C Java中字符串在内存中的存储