既然做了奶站软件,需要使用的仪表板,显示质量数据

public class MDashboard extends ImageView {

private Bitmap mPointerBitmap;





private int max = 100;

private int progress = 0;





//构�?

�?

public MDashboard(Context context) {

super(context);

init();

}





public MDashboard(Context context, AttributeSet attrs) {

super(context, attrs);

init();

}





public MDashboard(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

init();

}

    //初始化布局   Initializes layout

private void init() {

setScaleType(ScaleType.FIT_CENTER);

//设置表盘图片

setBackgroundDrawableId(R.drawable.base__view_dashboard_bg);

//设置表针图片Set the dial pictures

setPointerDrawableId(R.drawable.base__view_dashboard);

  //设置进度,与当前进度Sets the progress and current progress

setMax(100);

setProgress(0);

}





//设置仪表盘背景Set the dashboard background

public void setBackgroundDrawableId(int id) {

setImageResource(id);

invalidate();

}

    //设置指针的

public void setPointerDrawableId(int id) {

mPointerBitmap = BitmapFactory.decodeResource(getResources(), id);

invalidate();

}





public void setMax(int max) {

this.max = max;

invalidate();

}





public int getMax() {

return max;

}





public void setProgress(int progress) {

this.progress = progress;

//刷新进度

invalidate();

}





public int getProgress() {

return progress;

}





@SuppressLint("DrawAllocation")

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

int width = this.getWidth();

int height = this.getHeight();

int rotate = (int) ((float) ((float) progress / (float) max) * (float) 180);

Matrix m = new Matrix();

m.preRotate(rotate);

Bitmap bitmap = Bitmap.createBitmap(mPointerBitmap, 0, 0,

mPointerBitmap.getWidth(), mPointerBitmap.getHeight(), m, true);

int dx = width / 2;

int dy = height - bitmap.getHeight();

if (rotate == 90) {

dx -= bitmap.getWidth() / 2;

} else if (rotate < 90) {

dx -= bitmap.getWidth();

float f = ((float) rotate / (float) 180)

* (float) mPointerBitmap.getHeight() / 2;

dx += f;

} else if (rotate > 90) {

float f = ((float) rotate / (float) 180)

* (float) mPointerBitmap.getHeight() / 2;

dx -= f;

}

canvas.drawBitmap(bitmap, dx, dy, null);

}

}

csdn下载   http://download.csdn.net/download/kan1kan5/7816367

免积分下载 https://github.com/kankanV/KankanDashBoard

整个代码

版权声明:本文博客原创文章。博客,未经同意,不得转载。

定义自己的仪表板DashBoard - -kankanstyle的更多相关文章

  1. odoo10学习笔记十五:仪表板

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189353.html 仪表盘可以通过外部ID引用其他视图文件的内容,整合到一个界面进行显示. 一:建立仪表 ...

  2. Dashboard二次开发简明教程

    Horizon简介 Horizon是OpenStack的一个子项目,用于提供一个Web前端控制台(称为Dashboard),以此来展示OpenStack的功能.通常情况下,我们都是从Horizon.D ...

  3. 10-部署配置dashboard插件

    配置和安装 dashboard 官方文件目录:kubernetes/cluster/addons/dashboard 我们需要使用的yaml文件 $ ls *.yaml dashboard-contr ...

  4. Salesforce的报表和仪表板

    报表是现代企业中最常用到的功能之一.Salesforce中提供了强大的报表和仪表板功能. 报表和仪表板简介 报表是一组数据展示,用户可以自定义规则,只有符合相应规则的数据才会显示出来. Salesfo ...

  5. Kubernetes1.6集群上(开启了TLS)安装Dashboard

    本节内容: 配置dashboard 执行所有定义的文件 检查执行结果 访问dashboard 这是接着上一篇<二进制方式部署Kubernetes 1.6.0集群(开启TLS)>写的.Kub ...

  6. ElasticSearch 的 聚合(Aggregations)

    Elasticsearch有一个功能叫做 聚合(aggregations) ,它允许你在数据上生成复杂的分析统计.它很像SQL中的 GROUP BY 但是功能更强大. Aggregations种类分为 ...

  7. 分布式系统监视zabbix讲解五之web监控--技术流ken

    Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...

  8. Odoo仪表盘详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826324.html 一:仪表盘与看板的区别 kanban:kanban是一种视图类型,卡片式视图.可以为 ...

  9. 分布式系统监视zabbix讲解五之web监控

    Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...

随机推荐

  1. for循环语句之兔子生崽

    有一对幼兔,幼兔经过一个月长为小兔,小兔经过一个月长为大兔并且生下一对幼兔,而且大兔每月还会生下一对幼兔,问N个月后有多少对兔子 Console.WriteLine("请输入经过了几个月:& ...

  2. XMPP 服务器 Openfire 的 Emoji 支持问题(进行部分修改)

    当前最新版3.9.3已经可以支持Emoji  ----------------------------------------------------------------------------- ...

  3. 为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)

    作者:杜鑫链接:http://www.zhihu.com/question/21591490/answer/18762821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...

  4. 编写存储过程导出oracle表数据到多个文本文件

    1.测试表和数据: create table test(id )); begin .. loop insert into test values(k,'test'||k); end loop; end ...

  5. 一个RPC的demo

    从下面的例子中可以看到,Consumer(client)的代码中引用了Provider部分的class,本例中是 com.provider.EchoServiceImpl和com.provider.E ...

  6. springmvc+mybatis+redis(转)

    最近在学习redis的使用方法,它的本地使用方法比较简单,只需要先启动Redis服务器,然后运行测试代码即可.但是现在我想要在网站上访问数据库的时候采用Redis缓存,问题就出来了.要么是缓存直接失效 ...

  7. quant_百度百科

    quant_百度百科     quant    编辑    quant的工作就是设计并实现金融的数学模型(主要采用计算机编程),包括衍生物定价,风险估价或预测市场行为等.所以quant更多可看为工程师 ...

  8. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开

    Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...

  9. bootloader启动代码init.s解析----IRQ中断处理函数

    bootloader启动代码init.s解析----IRQ中断处理函数 init.s源代码如下: ;///////////////////////////////////////////// ;opt ...

  10. 网页制作之JavaScript部分 1 - 语法(复制教材内容)

    一.简介 1.JavaScript它是个什么东西? 它是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 2.它与Java有什么关系? 没有什么直接联系,java是Sun公司(已经没有了,被O ...