Android R.fraction
来源
我是在看Android10原生代码,绘制状态栏蓝牙电量相关类中第一次看到R.fraction的,如类BatteryMeterDrawable
<fraction name="battery_button_height_fraction">10%</fraction>mButtonHeightFraction = context.getResources().getFraction(
R.fraction.bt_battery_button_height_fraction, 1, 1);
方法解释
public float getFraction(@FractionRes int id, int base, int pbase) 源码中方法解释如下: Retrieve a fractional unit for a particular resource ID. Params: id – The desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier. base – The base value of this fraction. In other words, a standard fraction is multiplied by this value. pbase – The parent base value of this fraction. In other words, a parent fraction (nn%p) is multiplied by this value. Returns: Attribute fractional value multiplied by the appropriate base value. Throws: Resources.NotFoundException – Throws NotFoundException if the given ID does not exist.
用处
我自己没用过,待补充
测试
分别测试fraction的两种声明:有p的跟没p的
<item name="fraction" type="fraction">30%</item>
<item name="fraction" type="fraction">30%p</item>
测试没p的:
测试案例1:保持第三个参数不变
测试:
//<item name="fraction" type="fraction">30%</item>float fraction1 = this.getResources().getFraction(R.fraction.fraction, 1, 1);float fraction2 = this.getResources().getFraction(R.fraction.fraction, 2, 1);float fraction3 = this.getResources().getFraction(R.fraction.fraction, 3, 1);float fraction4 = this.getResources().getFraction(R.fraction.fraction, 4, 1);结果:
分析:
都是30%乘以第二个参数(base)
测试案例1:第三个参数改变
测试:
//<item name="fraction" type="fraction">30%</item>float fraction1 = this.getResources().getFraction(R.fraction.fraction, 1, 2);float fraction2 = this.getResources().getFraction(R.fraction.fraction, 1, 3);float fraction3 = this.getResources().getFraction(R.fraction.fraction, 2, 2);float fraction4 = this.getResources().getFraction(R.fraction.fraction, 2, 3);结果:
分析:
都是30%乘以第二个参数(base)
总结以上两个测试案例可知:在没p的情况下,getFraction方法返回的结果就是乘以第二个参数;
测试有p的:
测试:
//<item name="fraction" type="fraction">30%p</item>float fraction1 = this.getResources().getFraction(R.fraction.fraction, 1, 2);float fraction2 = this.getResources().getFraction(R.fraction.fraction, 1, 3);float fraction3 = this.getResources().getFraction(R.fraction.fraction, 2, 2);float fraction4 = this.getResources().getFraction(R.fraction.fraction, 2, 3);结果:
分析:
都是30%乘以第三个参数(pbase)
相关文章:
Android R.fraction
来源 我是在看Android10原生代码,绘制状态栏蓝牙电量相关类中第一次看到R.fraction的,如类BatteryMeterDrawable <fraction name"battery_button_height_fraction">10%</fraction> mButtonHeightFraction context.getResources(…...
C语言精华题目锦集1
第一题 test.c文件中包括如下语句,文件中定义的四个变量中,是指针类型的是()【多选】 #define INT_PTR int* typedef int* intptr; INT_PRT a,b; int_ptr c,d;A:a B:b C:c D:d #define是宏定义,此时在程序中IN…...
头歌答案Python——JSON基础
目录 编辑 Python——JSON基础 第1关:JSON篇:JSON基础知识 任务描述 第2关:JSON篇:使用json库 任务描述 Python——XPath基础 第1关:XPath 路径表达式 任务描述 第2关:XPath 轴定位 任务描述…...
TDengine 与煤科院五大系统实现兼容性互认,助力煤矿智能化安全体系搭建
近日,涛思数据与煤炭科学技术研究院(以下简称煤科院)已完成数个产品兼容互认证工作,经双方共同严格测试,涛思数据旗下物联网、工业大数据平台 TDengine V3.X 与煤炭科学技术研究院旗下煤矿复合灾害监测监控预警系统、煤…...
231030期就业班开班咯!我在前方护航,让你稳稳入职
就业哪家强?还得看优橙! 11月9日,231030期就业班的小伙伴结束了为期8天的基础班学习,正式进入了就业班。优橙教育也为新一批就业班的同学举办了开班典礼。 典礼环节中不仅有多彩的抽奖活动,也有丰富的超值礼品,旨在鼓…...
小白学安全-漏洞编号的理解 CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD
1、以CVE开头,如CVE-1999-1046这样的 CVE的英文全称是“Common Vulnerabilities&Exposures”公共漏洞和暴露。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,能够帮助用…...
助力燃气安全运行:智慧燃气管网背景延展
关键词:城市燃气管网、智慧燃气管网、智慧管网、智慧燃气管网解决方案、智慧燃气 01背景 当前,随着我国城市化进程不断加快,城市燃气管网也不断延伸,运行规模庞大,地下管线复杂,不少城市建设“重地上轻地…...
低代码、零代码开源与不开源:区别解析
在如今日益发展的数字时代,程序开发变得越来越重要。为了实现日益提高的业务需求,开发人员必须能够以更高效、更灵活的方式构建和交货软件解决方案。低代码和零代码开源是近几年流行的两种开发方法。本文将探讨它们与传统非开源程序开发的差别࿰…...
LabVIEW中如何在网络上使用远程VI服务器
LabVIEW中如何在网络上使用远程VI服务器 如何在网络上使用远程VI服务器? 解答: 首先,需要在远程的计算机上打开一个在VI服务器上的LabVIEW应用程序的引用。这可以通过“Open ApplicationReference“函数实现。然后用“Open VI Reference”函数打开一个…...
Centos 7rc.local脚本命令开机不执行及指定用户启动的方法
1.开机不启动 在实际生产场景中,我们喜欢在安装了一些软件服务后,将软件设置为开机自启动 配置在/etc/rc.local文件中。直接将软件服务的启动命令写在rc.local文件 注意:编辑完rc.local文件后,一定要给rc.local文件执行权限&#…...
mysql 的存储过程
一组为了完成特定功能的sql 语句的集合,写好了存储过程之后,我们可以向函数一样随时调用sql 的集合 CREATE TABLE info ( id int(3) PRIMARY KEY, name VARCHAR(15), score DECIMAL(5,2), pass varchar(12) ); 创建存储过程 创建过程 delimiter $$ #将语…...
http客户端简单demo
socket.h头文件 #pragma once #include <iostream> #include <cstring> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string> using std::string;namespace MySocket …...
解决UniAD在高版本CUDA、pytorch下运行遇到的问题
UniADhttps://github.com/OpenDriveLab/UniAD是面向行车规划集感知(目标检测与跟踪)、建图(不是像SLAM那样对环境重建的建图,而是实时全景分割图像里的道路、隔离带等行车需关注的相关物体)、和轨迹规划和占用预测等多任务模块于一体的统一大模型。官网上的安装说明…...
ADC、DMA以及串口之间的联系和区别?
ADC、DMA和串口都是嵌入式系统中常用的模块,它们之间有以下联系和区别: 联系: ADC和DMA都是用于数据采集和传输的模块,ADC可以将模拟信号转换为数字信号,DMA可以在不经过CPU的情况下实现数据的高速传输。而串口则是一…...
jupyter lab配置列表清单
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
爱发电 OAuth 登录 SDK for Remix
目录 概要安装使用配置 Remix Auth配置登录跳转配置 callback 回调配置 Demo 测试页配置注销登录 概要 爱发电 OAuth 文档: https://afdian.net/p/010ff078177211eca44f52540025c377 注意一下这里有两个细节: 这里的 OAuth 非标准化 OAuth,…...
Wpf 使用 Prism 实战开发Day05
首页设计 1.效果图 一.代码现实 根据页面布局,可以将页面设计成3行,每行中分多少列,看需求而定根据页面内容,设计Model 实体类,以及View Model 1.Index.xaml 页面布局设计 RowDefinition 分行(Row…...
性能压测工具:Locust详解
一、Locust介绍 开源性能测试工具https://www.locust.io/,基于Python的性能压测工具,使用Python代码来定义用户行为,模拟百万计的并发用户访问。每个测试用户的行为由您定义,并且通过Web UI实时监控聚集过程。 压力发生器作为性…...
vmware 修改主机名称 hadoop 服务器环境配置(一)
如何在虚拟机配置主机名称: 1. 如图所示在/etc 文件夹下有个hosts文件。追加映射关系: #关系 ip地址 名称 192.168.164.20 hadoop20 2. 保存后,重启reboot即可...
淘宝店铺订单插旗接口(taobao.trade.memo.update淘宝店铺订单交易备注修改接口)
淘宝店铺订单插旗接口是指可以在淘宝店铺的订单系统中进行订单备注的接口。通过该接口,您可以根据用户的身份(买家或卖家),添加相应的交易备注,用于区分不同订单类型等。 具体使用方法可以参考淘宝开放平台的API接口文…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...


