定义自己的仪表板DashBoard - -kankanstyle
既然做了奶站软件,需要使用的仪表板,显示质量数据
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的更多相关文章
- odoo10学习笔记十五:仪表板
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189353.html 仪表盘可以通过外部ID引用其他视图文件的内容,整合到一个界面进行显示. 一:建立仪表 ...
- Dashboard二次开发简明教程
Horizon简介 Horizon是OpenStack的一个子项目,用于提供一个Web前端控制台(称为Dashboard),以此来展示OpenStack的功能.通常情况下,我们都是从Horizon.D ...
- 10-部署配置dashboard插件
配置和安装 dashboard 官方文件目录:kubernetes/cluster/addons/dashboard 我们需要使用的yaml文件 $ ls *.yaml dashboard-contr ...
- Salesforce的报表和仪表板
报表是现代企业中最常用到的功能之一.Salesforce中提供了强大的报表和仪表板功能. 报表和仪表板简介 报表是一组数据展示,用户可以自定义规则,只有符合相应规则的数据才会显示出来. Salesfo ...
- Kubernetes1.6集群上(开启了TLS)安装Dashboard
本节内容: 配置dashboard 执行所有定义的文件 检查执行结果 访问dashboard 这是接着上一篇<二进制方式部署Kubernetes 1.6.0集群(开启TLS)>写的.Kub ...
- ElasticSearch 的 聚合(Aggregations)
Elasticsearch有一个功能叫做 聚合(aggregations) ,它允许你在数据上生成复杂的分析统计.它很像SQL中的 GROUP BY 但是功能更强大. Aggregations种类分为 ...
- 分布式系统监视zabbix讲解五之web监控--技术流ken
Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...
- Odoo仪表盘详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826324.html 一:仪表盘与看板的区别 kanban:kanban是一种视图类型,卡片式视图.可以为 ...
- 分布式系统监视zabbix讲解五之web监控
Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...
随机推荐
- BestCoder Round #50 (div.1) 1003 The mook jong (HDU OJ 5366) 规律递推
题目:Click here 题意:bestcoder 上面有中文题目 分析:令f[i]为最后一个木人桩摆放在i位置的方案,令s[i]为f[i]的前缀和.很容易就能想到f[i]=s[i-3]+1,s[i ...
- 【centos6 , 6】linux 查看帮助文档:
1. 使用 命令 -h 或 命令 --help , 例: ls -h 2. man命令 : man 命令 例:man ls 3.info命令: ...
- ring0和ring3的区别
现在探讨内核程序和应用程序之间的本质区别.除了能用WDK编写内核程序和阅读一部分Windows的内核代码之外,我们还需要了解它们的本质是什么,它们和我们熟悉的应用程序有什么区别. Intel的x86处 ...
- ASP.NET MVC 5 学习教程:通过控制器访问模型的数据
原文 ASP.NET MVC 5 学习教程:通过控制器访问模型的数据 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连 ...
- JSpider是一个用Java实现的WebSpider
JSpider是一个用Java实现的WebSpider,JSpider的执行格式如下: jspider [URL] [ConfigName] URL一定要加上协议名称,如:http://,否则会报错. ...
- 客户机增加域 及server文件共享
客户机要增加域,右击我的电脑--属性--更改--域,输入域名.例:输入域名company.com中的company , 后面的com不要加. 再在弹出的窗体中输入域管理员的完整username(use ...
- cocos2d-实现读取.plist文件(使用数组CCArray)
学习札记之cocos2d-x2.1.1实现读取.plist文件(使用数组CCArray) <?xml version="1.0" encoding="UTF-8&q ...
- linux 单网卡绑定两个ip
一.ubuntu系统: #vi /etc/network/interfaces OR $ sudo vi /etc/network/interfaces Modify as follows: au ...
- Android学习笔记之View(二)
View加载的流程之测量:rootView调用measure()→onMeasure(): measure()是final方法,表明Android不想让开发者去修改measure的框架,开发者可以on ...
- 编译安装MongoDB C++ Driver (win8.1 vs2013)
在C++中调用mongodb的库函数需要安装mongodb的c++driver,需要自己编译,(自己搞了一天半 =_=''' ) 官网Build MongoDB From Source 说To bui ...