电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android實現儀表盤控件開發

瀏覽:91日期:2022-09-18 13:34:15

儀表盤在工業軟件中很常見,今天整一個圖片式儀表盤控件(非幾何圖形繪制)。實現非常簡單,一張背景圖,一張指針。創建一個RelativeLayout布局文件,然后在里面布置好控件的位置,代碼如下

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='wrap_content' android:layout_height='wrap_content'> <ImageViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_centerInParent='true'android:src='http://www.hdgsjgj.cn/bcjs/@mipmap/meter_h_bk' /> <ImageViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_alignBottom='@id/id_dial'android:layout_centerInParent='true'android:src='http://www.hdgsjgj.cn/bcjs/@mipmap/meter_fr' /> <com.tech.view.DigitalTextandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_alignBottom='@id/id_dial'android:layout_centerHorizontal='true'android:layout_marginBottom='2dp'android:text='29.9'android:textColor='@android:color/white'android:textSize='21sp' /></RelativeLayout>

DigitalText是使用第三方字體控件,這個可自行百度搜索想要的字體。然后寫一個儀表盤控件類,DialBoard

代碼如下

public class DialBoard { private static final String TAG = DialBoard.class.getName(); private ImageView dialPoint; private TextView text; private static final float MAX = 120.0f; private static final float MIN = -120.0f; private boolean animationDone = true; public DialBoard(Activity activity) {dialPoint = activity.findViewById(R.id.id_dial_point);text = activity.findViewById(R.id.id_value);text.setText(String.format('%.02f', 0.0f));setRotation(MIN, true); } public synchronized void moveTo(float progress) {if (animationDone) new Thread(() -> move(progress)).start(); } private void move(float progress) {animationDone = false;float offset = (MAX - MIN) / 100;final float STEP = 2.0f;//理論上要小于offsetfloat curProgress = (dialPoint.getRotation() - MIN) / offset;//計算當前進度和目標進度方向,步數float value = Math.abs(curProgress - progress);while (value > 0.1f) { value = (value < 1.0f ? 0.2f : STEP); if (progress < curProgress) value = -value; setRotation(dialPoint.getRotation() + value, false); Tools.sleep(10); curProgress = (dialPoint.getRotation() - MIN) / offset; value = Math.abs(curProgress - progress); final float textValue = curProgress; text.post(() -> text.setText(String.format('%.02f', textValue)));}text.post(() -> text.setText(String.format('%.02f', progress)));animationDone = true; } /** * @param rotation MIN~MAX */ public void setRotation(float rotation) {this.setRotation(rotation, false); } private void setRotation(float rotation, boolean onCreate) {if (onCreate) { int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); dialPoint.measure(w, h);//測量控件大小}int width = dialPoint.getMeasuredWidth();int height = dialPoint.getMeasuredHeight();dialPoint.post(() -> { dialPoint.setPivotX(width * 0.5f); dialPoint.setPivotY(height * 0.82666f); dialPoint.setRotation(rotation);}); }}

最終效果圖

Android實現儀表盤控件開發

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 包头市鑫枫装饰有限公司| 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | 楼承板-开闭口楼承板-无锡海逵楼承板| 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 海鲜池-专注海鲜鱼缸、移动海鲜缸、饭店鱼缸设计定做-日晟水族厂家 | 周口市风机厂,周鼓风机,河南省周口市风机厂 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 消防泵-XBD单级卧式/立式消防泵-上海塑泉泵阀(集团)有限公司 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 进口消泡剂-道康宁消泡剂-陶氏消泡剂-大洋消泡剂 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 阜阳在线-阜阳综合门户| 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 最新电影-好看的电视剧大全-朝夕电影网 | 噪声治理公司-噪音治理专业隔音降噪公司 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 |