Android 仪表盘

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();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

检查调试句柄泄漏

Windows任务管理查看句柄数 任务管理–>查看–>选择列–>勾选“句柄数” process explorer查看句柄详细信息 process explorer 中双击指定进程打开进程的properties窗口&#xff0c;切换到performance标签页&#xff0c;可以看到比任务管理器更详细的统计数据。 包括H…

小程序 获取 用户 unionid

首先明确&#xff0c;获取小程序的unionid需要在后台实现。下面开始详细介绍步骤。 1、首先要获得encryptedData&#xff0c;一种是通过授权函数&#xff0c;一种通过授权按钮 官方文档 https://developers.weixin.qq.com/miniprogram/dev/api/wx.getUserInfo.html?search-k…

前端学习(2627):node安装

1、在使用之前&#xff0c;先类掌握3个东西&#xff0c;明白它们是用来干什么的&#xff1a; npm: nodejs 下的包管理器。 webpack: 它主要用途是通过CommonJS 的语法把所有浏览器端需要发布的静态资源作相应的准备&#xff0c;比如资源的合并和打包。 vue-cli: 用户生成Vu…

jmeter集合点使用方法:Synchronizing Timer

LR中集合点可以设置多个虚拟用户等待到一个点&#xff0c;同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的。 jmeter中使用Synchronizing Timer实现Lr中集合点的功能&#xff0c;模拟多用户并发测试&#xff0c;即多个线程在同一时刻并发请求。…

微信模版消息 errmsg: 'invalid weapp pagepath hint: [OtU1OA0868a394]

我是想在公众号的模版消息中&#xff0c;点击直接跳转到体验版小程序的页面中&#xff0c;使用了官方的写法&#xff1a; miniprogram: {// 小程序appidappid: config.wapp.appid,// 打开页面pagepath: "pages/home/ad" },直接报错了&#xff0c;其实需要把pagepath…

前端学习(2628):node.js中LTS和Current的区别

2016 年 10 月 18 日&#xff0c;Node.js v6 LTS (Boron) 发布&#xff0c;这也是 Node.js 启用 LTS 发布计划以来&#xff0c;第一次同时迎来两个 active LTS(v4 与 v6&#xff09;。这系列文章将讲述 Node.js v6 LTS 带来的一系列变化&#xff0c;本篇主要围绕 LTS 展开。如果…

Android 柱状图

依赖compile org.xclcharts:lib:2.4 自定义view1/*** ClassName DemoView* Description 各个例子view的view基类*/ public class DemoView extends ChartView{public DemoView(Context context) {super(context);// TODO Auto-generated constructor stub}public DemoView(Con…

【mmall】IDEA自动Make

待更新... 转载于:https://www.cnblogs.com/bobi1234/p/7716737.html

谷歌chrome模拟手机浏览网页:iPhone/Android

部分网站通过Http头中的User-Agent判断浏览器类型&#xff0c;如果是手机&#xff0c;显示手机版页面内容&#xff0c;如果是普通PC浏览器&#xff0c;显示电脑版网页内容。 因此谷歌Chrome浏览器&#xff0c;可以通过修改User-Agent和页面分辨率模拟手机浏览器访问网页。如iPh…

js 对象数组常用操作 我用到的

1、删除一个元素 arr.splice(arr.findIndex(v > v.key demokey),1);2、根据某个字段就行排序 function compare(p) { return function (m, n) {const a m[p];const b n[p];return b - a; } } myDeparts.sort(compare("role"));3、在数组开头新增元素 arr.un…

前端学习(2629):npm安装成功配置

修改目录 修改镜像 输入命令npm config set registryhttp://registry.npm.taobao.org 配置镜像站 配置成功 测试镜像行吗

设置WordPress文章关键词自动获取,文章所属分类名称,描述自动获取文章内容,给文章的图片自动加上AlT标签...

最近在优化网站&#xff0c;SEO优化标准&#xff1a;每一篇文章都要有关键词&#xff0c;关键词的个数为3到6个。每一篇文章都要有描述&#xff0c;描述的字数为汉字在70~80之间&#xff0c;在160个字符之间。每一篇文章的图片都要有Alt标签&#xff0c;自动给图片加上Alt标签实…

优化JMeter自身性能

JMeter负载测试时使用GUI界面和较多的收集测试结果的监听器容易造成jmeter的性能瓶颈&#xff0c;远程测试时的控制台尤为明显。提升JMeter负载测试时性能的方法如下&#xff1a; 官方的解决办法&#xff1a; http://jakarta.apache.org/jmeter/usermanual/best-practices.html…

centos 宝塔面板 mongodb 给新的数据库 创建登录用户和密码

之前写过一篇冷环境下mongodb从零开始创建用户密码的文章。 https://blog.csdn.net/solocao/article/details/83347658 当我们需要再新增一个账号时&#xff0c;用下面的方法&#xff0c;和第一篇大同小异&#xff1a; 1、进入mongodb安装目录&#xff0c;下面是宝塔面板的默…

EventBus使用实例,观察者模式

依赖 compile org.greenrobot:eventbus:3.0.0 构造函数方法类(用于传递参数) public class ChangeFragmentEvent {private int viewId;private String ass;public ChangeFragmentEvent(int id,String ss) {this.viewId id;this.assss;}public int getViewId() {return viewId…

前端学习(2630):git安装包下载

下载git时&#xff0c;先进官网看 https://git-scm.com/download/win 然后发现几kb的网速&#xff0c;这是要让我下一年么&#xff0c;找了找网上有没有其他的镜像&#xff0c;发现阿里有一个镜像&#xff0c;下载速度超快。 网址&#xff1a;https://npm.taobao.org/mirror…

coding ssh_exchange_identification: Connection closed by remote host

首先&#xff0c;强力吐槽coding.net。前段时间突然提交不上代码了。老是报错&#xff0c;一怒之下删除.ssh&#xff0c;然后重新根据官方文档配置&#xff0c;我是买的企业版&#xff0c;是付费的。 于是官方文档坑了 https://e.coding.net/help/git/ssh-key/#i-3 感觉这文档…

jmeter模拟http请求/发送gzip数据

jmeter中get请求gzip数据的方法&#xff1a; 在jmeter线程组中添加“http信息头管理器”&#xff0c;并添加名称&#xff1a;Accept-Encoding值: gzip,deflate 注&#xff1a;HTTP信息头Accept-Encoding 是客户端发给服务器,声明客户端支持的编码类型 验证服务器是否返回了gzip…

Java randomString

public static String randomString(int strLength) {Random rnd ThreadLocalRandom.current();StringBuilder ret new StringBuilder();for (int i 0; i < strLength; i) {boolean isChar (rnd.nextInt(2) % 2 0);// 输出字母还是数字if (isChar) { // 字符串int choi…

Service Intent must be explicit

隐性调用需要设置包名 serviceIntent new Intent("ce"); serviceIntent.setPackage("clan.yuanxin.com.myditukaifa");//设置包名 startService(serviceIntent);