[Android] 问题记录 - Android 支持的度量单位

本文详细介绍了Android中定义屏幕元素尺寸的方法,包括各种单位如dp、sp等的意义及使用场景,并给出了具体的XML配置示例。

转自android官方文档,无法提供链接,因为android官网的链接被和谐了。我在日文版google android中的cache里面翻到的如下内容。赶紧保存了下来。

 

1. You can create common dimensions to use for various screen elements by defining dimension values in XML. A dimension resource is a number followed by a unit of measurement . For example: 10px, 2in, 5sp. Here are the units of measurement supported by Android :

(1) px --> Pixels - corresponds to actual pixels on the screen .

(2) in --> Inches - based on the physical size of the screen .

(3) mm --> Millimeters - based on the physical size of the screen .

(4) pt --> Points - 1/72 of an inch based on the physical size of the screen .

(5) dp --> Density-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi screen, so one dp is one pixel on a 160 dpi screen. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion .Note: The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp".

(6) sp --> Scale-independent Pixels - this is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and user's preference .

 

2. Dimension values are not normally used as raw resources, but rather as attribute values in XML files. You can, however, create plain resources containing this data type.

Source file format: XML file requiring a <?xml version="1.0" encoding="utf-8"?> declaration, and a root <resources> element containing one or more<dimen> tags.

Resource source file location : res/values/dimens.xml (File name is arbitrary; standard practice is to put all dimensions in one file devoted to dimensions.)

Compiled resource datatype: Resource pointer to a dimension .

Resource reference name:

  • Java: R.dimen.some_name
  • XML: @[package :]dimen/some_name (where some_name is the name of a specific <dimen> element)

Syntax

Xml代码 
  1. <dimen name=dimen_name>dimen_value</dimen>  

<dimen>A valid dimension value. name - The name used in referring to this dimension .

Example XML Declaration

The following code declares several dimension values.

Xml代码 
  1. <resources>  
  2.     <dimen name="one_pixel">1px</dimen>  
  3.     <dimen name="double_density">2dp</dimen>  
  4.     <dimen name="sixteen_sp">16sp</dimen>  
  5. </resources>   

Example Code Use

Example Java code:

Java代码 
  1. float dimen = Resources.getDimen(R.dimen.one_pixel);   

Example XML code:

Xml代码 
  1. <TextView android:layout_width="fill_parent"  
  2.           android:layout_height="wrap_content"  
  3.           android:textSize="@dimen/sixteen_sp"/>  
 

3. 简单总结

dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果。

px: pixels(像素). 不同设备显示效果相同。

sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

pt/in/mm就不解释了,没什么好解释的。

内容概要:本文详细介绍了一个基于C++的养老院管理系统的设计与实现,旨在应对人口老龄化带来的管理挑战。系统通过整合住户档案、健康监测、护理计划、任务调度等核心功能,构建了从数据采集、清洗、AI风险预测到服务调度与可视化的完整技术架构。采用C++高性能服务端结合消息队列、规则引擎和机器学习模型,实现了健康状态实时监控、智能任务分配、异常告警推送等功能,并解决了多源数据整合、权限安全、老旧硬件兼容等实际问题。系统支持模块化扩展与流程自定义,提升了养老服务效率、医护协同水平和住户安全保障,同时为运营决策提供数据支持。文中还提供了关键模块的代码示例,如健康指数算法、任务调度器和日志记录组件。; 适合人群:具备C++编程基础,从事软件开发或系统设计工作1-3年的研发人员,尤其是关注智慧养老、医疗信息系统开发的技术人员。; 使用场景及目标:①学习如何在真实项目中应用C++构建高性能、可扩展的管理系统;②掌握多源数据整合、实时健康监控、任务调度与权限控制等复杂业务的技术实现方案;③了解AI模型在养老场景中的落地方式及系统架构设计思路。; 阅读建议:此资源不仅包含系统架构与模型描述,还附有核心代码片段,建议结合整体设计逻辑深入理解各模块之间的协同机制,并可通过重构或扩展代码来加深对系统工程实践的掌握。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值