定义自己的仪表板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 监控, ...
随机推荐
- Git简介及安装和简单配置
首先需要清楚的是Git和GitHub的区别. Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了 ...
- Win10玩魔兽争霸不能全屏显示的设置教程
Win10玩魔兽争霸不能全屏显示的设置教程: 1.右击桌面左下角的windows图标,显示图片内容,然后点击运行: 2.点击运行,有个输入框,输入regedit,点击确认: 3.显示win10注册表, ...
- grub2的/etc/default/grub文件详解
# If you change this file, run 'update-grub' afterwards to update# /boot/grub/grub.cfg.GRUB_DEFAULT= ...
- Tomcat日志catalina.out文件过大的处理方法
原文地址:http://lcbk.net/tomcat/1396.html 我们知道一般企业使用Tomcat 作为Web端时,它产生的日志会越来越大,特别是catalina.out这个日志文件,然而有 ...
- Oracle统计之like,or关键字
有的时候我们统计需要like多个条件,比如某个字段中含有 “银行”或者“投资公司”,这个时候就用like多个字段. 如下是统计某个地区的2015年入院的病种诊断中带有 “癌”或者“肿瘤”的情况, 正确 ...
- mong 备份和恢复
[root@hy-mrz01 bin]# ./mongofiles list -h114.55.5.57 -db pics 20160602152850deeabcb1bd2644afa0c3a9a8 ...
- OGR SQL (GEOM)
The OGRDataSource supports executing commands against a datasource via the OGRDataSource::ExecuteSQL ...
- swift 关于 toolbar 学习笔记
import UIKit class ViewController: UIViewController { @IBOutlet weak var toolBar: UIToolbar! @IBOutl ...
- 无法启动outlook mapi
office2013 管理员权限,在命令行中定位到office15文件夹,然后运行命令"outlook /importprf ..prf"
- C--全排列的实现(递归方法) 傻子也能看懂的
假设数组含有n个元素,则提取数组中的每一个元素做一次头元素,然后全排列除数组中除第一个元素之外的所有元素,这样就达到了对数组中所有元素进行全排列的得目的.[这句话才是重点!] 比如 1,2,3.的 ...