Avoid using "px" as units; use "dp" instead

本文讨论了在Android开发中,为何推荐使用dp单位而非px单位来定义字体大小。dp单位能够确保应用界面在不同屏幕尺寸下保持一致的比例。

android开发当中,在为应用程序布局时,用到了:
android:textSize="24px"

这时发现编译器警告:
Avoid using "px" as units; use "dp" instead

google让我们避免使用px单位了,这是因为px单位大小始终是固定的,而dp单位的大小却可以随着屏幕的大小而改变,所以使用dp可以使应用程序适应任何尺寸的屏幕而不改变UI比例的大小。

在 JavaScript 中,对象的键会自动转换为字符串。为了避免使用非原始值作为键,而使用字符串或数字值,可以采用以下几种方法: ### 手动转换为字符串或数字 当有非原始值需要作为键使用时,手动将其转换为字符串或数字。例如,如果有一个对象作为潜在的键,可以将其某个属性值作为键: ```javascript const obj = { id: 1, name: 'example' }; const key = obj.id.toString(); // 转换为字符串 const myMap = {}; myMap[key] = 'value'; ``` ### 使用 `JSON.stringify` 对于复杂的对象,可以使用 `JSON.stringify` 将其转换为字符串。不过要注意,这种方式可能会因为对象属性顺序不同而产生不同的字符串: ```javascript const complexObj = { a: 1, b: [2, 3] }; const key = JSON.stringify(complexObj); const myMap = {}; myMap[key] = 'complexValue'; ``` ### 自定义映射函数 创建一个自定义函数,将非原始值映射为唯一的字符串或数字。例如,为每个对象分配一个唯一的 ID: ```javascript const idMap = new Map(); let nextId = 1; function getKey(obj) { if (!idMap.has(obj)) { idMap.set(obj, nextId++); } return idMap.get(obj); } const someObj = { prop: 'test' }; const key = getKey(someObj); const myMap = {}; myMap[key] = 'mappedValue'; ``` ### 使用 `Map` 对象的特性 `Map` 对象可以使用任何类型的值作为键,不过如果需要将键转换为字符串或数字存储到普通对象中,可以在存储时进行转换: ```javascript const myMap = new Map(); const nonPrimitiveKey = { key: 'nonPrimitive' }; myMap.set(nonPrimitiveKey, 'value'); const regularObj = {}; myMap.forEach((value, key) => { const stringKey = JSON.stringify(key); // 转换为字符串 regularObj[stringKey] = value; }); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值