Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度

原文地址:http://android.xsoftlab.net/training/multiscreen/screendensities.html

这节课将会学习如何通过不同的资源以及独立的测量单位来支持不同的屏幕密度。

使用密度独立的像素单位

你必须要避免这么一个陷阱:在设计布局时,使用了绝对的像素单位来定义距离及尺寸。通过像素来定义布局的尺寸是个问题,因为不同的屏幕含有不同的像素密度,所以在不同的设备上使用同一像素长度会造成不同的物理尺寸。因此在指定尺寸时,应该总是使用dp或者sp为单位。dp是一种密度独立的像素单位,在160dpi时与像素的物理尺寸正好吻合(也就是说160dpi的屏幕dp正好等于sp)。sp同样也是一种基准单位,但是它一种可伸缩的文本尺寸单位,所以应当在定义文本尺寸时使用该单位(绝不要在布局上使用该单位)。

比如说,在指定两个View之间的空隙时,应该使用dp,而不是px:

<Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/clickme"android:layout_marginTop="20dp" />

在指定文本大小时,总是使用sp:

<TextView android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20sp" />

提供备选位图

因为Android运行于种类繁多的设备上,所以应当为普遍的密度范围提供相应的位图资源:low, medium, high及extra-high密度。这有助于提升所有屏幕密度的物理效果及性能。

为了产生这些位图,应当通过原生资源生成多种密度的图像:

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (基准线)
  • ldpi: 0.75

这意味着如果为xhdpi的设备生成了200x200的图像,那么应该为hdpi提供的尺寸为150x150,mdpi为100x100,ldpi为75x75。

然后将这些文件分别放入适当的目录下,在运行时,系统会根据当前的屏幕密度自动选择正确的位图:

MyProject/res/drawable-xhdpi/awesomeimage.pngdrawable-hdpi/awesomeimage.pngdrawable-mdpi/awesomeimage.pngdrawable-ldpi/awesomeimage.png

接下来,在任何时候引用@drawable/awesomeimage时,系统会基于屏幕的dpi选择合适的位图图像。

最后将启动图标放入到mipmap/文件夹下:

res/...mipmap-ldpi/...finished_launcher_asset.pngmipmap-mdpi/...finished_launcher_asset.pngmipmap-hdpi/...finished_launcher_asset.pngmipmap-xhdpi/...finished_launcher_asset.pngmipmap-xxhdpi/...finished_launcher_asset.pngmipmap-xxxhdpi/...finished_launcher_asset.png

Note: 应当将所有的启动图标放入到res/mipmap-[density]/文件夹下,而不是drawable/文件夹中,这样可以确保桌面APP使用了最佳的分辨率图标。有关更多信息,请参见Managing Projects Overview。

有关更多创建图标资源的提示与指南,请参见Icon Design Guidelines.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

陈华钧等 | OpenKG区块链:构建可信开放的联邦知识图谱平台

文章导读本文介绍了OpenKG在区块链方向的一些实践和尝试。经过一年努力&#xff0c;OpenKG初步完成了底层区块链平台测试&#xff0c;以及OpenKG数据集、工具集和Openbase细粒度知识众包的上链测试工作。在这个测试平台中&#xff0c;已包含1033位确权的知识贡献者。上链测试两…

ICLR'21 | 一个二值化词向量模型,是怎么跟果蝇搭上关系的?

文&#xff5c;苏剑林&#xff08;追一科技&#xff09; 编 | 小轶可能有些读者最近会留意到ICLR 2021的论文Can a Fruit Fly Learn Word Embeddings?&#xff0c;文中写到它是基于仿生思想&#xff08;仿果蝇的嗅觉回路&#xff09;做出来的一个二值化词向量模型。其实论文的…

如何解决NLP分类任务的11个关键问题:类别不平衡低耗时计算小样本鲁棒性测试检验长文本分类 JayLou娄杰

原文链接&#xff1a;https://zhuanlan.zhihu.com/p/183852900 欢迎关注《高能AI》公众号&#xff5e;声明&#xff1a;文中观点谨代表笔者个人立场&#xff0c;盲目搬运有风险&#xff5e;在2020这个时间节点&#xff0c;对于NLP分类任务&#xff0c;我们的关注重点早已不再是…

LeetCode 908. 最小差值 I

1. 题目 给定一个整数数组 A&#xff0c;对于每个整数 A[i]&#xff0c;我们可以选择任意 x 满足 -K < x < K&#xff0c;并将 x 加到 A[i] 中。 在此过程之后&#xff0c;我们得到一些数组 B。 返回 B 的最大值和 B 的最小值之间可能存在的最小差值。 示例 1&#x…

Android官方开发文档Training系列课程中文版:多样屏幕之实现自适应UI

原文地址&#xff1a;http://android.xsoftlab.net/training/multiscreen/adaptui.html 基于程序当前所显示的布局来说&#xff0c;UI流程可能会有所不同。比如说&#xff0c;如果程序当前处于多面板模式&#xff0c;点击左面板中的项目会直接在右面版中显示具体的内容;如果当…

论文浅尝 - AAAI2020 | 基于知识图谱进行对话目标规划的开放域对话生成技术

论文笔记整理&#xff1a;张傲&#xff0c;天津大学硕士。Knowledge Graph Grounded Goal Planning for Open-Domain Conversation Generation来源&#xff1a;哈工大SCIR动机让机器生成有内容并且主题连贯的多轮开放域对话&#xff0c;是人工智能公认的关键任务之一。针对这一…

一个程序员的“无聊”故事

文 | Cat Chen知乎本文已获作者授权&#xff0c;禁止二次转载不同时期的生活方式是非常不一样的。我觉得最重要的是意识到这一点&#xff0c;不要以为某一种生活方式会一直延续下去。这个世界上不会存在特定的程序员生活方式&#xff0c;你在不同的公司工作就会遇到不一样的公司…

NLP算法岗一年半的工作总结--聊聊什么才是NLP算法工程师的核心竞争力

首发公众号:【 NLP从入门到放弃】--日常更新技术分享先简单自我介绍一下&#xff0c;我任职在一家社交公司&#xff0c;做NLP算法工程师&#xff0c;主要做文本分类&#xff0c;序列标注&#xff0c;文本相似度方向的工作&#xff0c;也做过搜索/推荐方向的需求。工作快有一年半…

LeetCode 349. 两个数组的交集(哈希)

1. 题目 给定两个数组&#xff0c;编写一个函数来计算它们的交集。 示例 1:输入: nums1 [1,2,2,1], nums2 [2,2] 输出: [2] 示例 2:输入: nums1 [4,9,5], nums2 [9,4,9,8,4] 输出: [9,4] 说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。来源&am…

Android官方开发文档Training系列课程中文版:创建自定义View之View的创建

原文地址&#xff1a;http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类&#xff0c;这些类用来显示各式各样的数据&#xff0c;并可以直接与用户交互。但是某些时候&#xff0c;APP有一项很特殊的需求&#xff0c;但是框架中…

论文浅尝 | Iterative Cross-Lingual Entity Alignment Based on TransC

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士。来源&#xff1a;IEICE TRANSACTIONS on Information and Systems, 2020, 103(5): 1002-1005.链接&#xff1a;https://www.jstage.jst.go.jp/article/transinf/E103.D/5/E103.D_2019DAL0001/_pdf介绍这篇论文关注的任…

ARKit:增强现实技术在美团到餐业务的实践

前言 增强现实&#xff08;Augmented Reality&#xff09;是一种在视觉上呈现虚拟物体与现实场景结合的技术。Apple 公司在 2017 年 6 月正式推出了 ARKit&#xff0c;iOS 开发者可以在这个平台上使用简单便捷的 API 来开发 AR 应用程序。 本文将结合美团到餐业务场景&#xff…

腾讯天衍实验室新算法入选国际万维网大会 新冠疫苗AI问答上线

新冠疫苗的效用和安全性如何&#xff1f;怎么预约接种新冠疫苗&#xff1f;哪些人可以接种新冠疫苗&#xff1f;接种新冠疫苗是否收费&#xff1f;进入年底&#xff0c;随着全国新冠疫苗接种工作规范有序开展&#xff0c;各地接种人数在不断增加&#xff0c;但在逐步面向全民推…

百度一口气亮出NLP十年积累:完整技术布局全面披露,面向业界砸下11项七夕大礼

百度一口气亮出NLP十年积累&#xff1a;完整技术布局全面披露&#xff0c;面向业界砸下11项七夕大礼&#xff1a;https://zhuanlan.zhihu.com/p/197625888

Android官方开发文档Training系列课程中文版:创建自定义View之View的绘制

原文地址&#xff1a;http://android.xsoftlab.net/training/custom-views/custom-drawing.html#draw 自定义View最重要的部分就是它的样子了。自定义View的绘制根据应用的需要或者简单亦或者复杂。这节课的内容涵盖了大多数通用的知识点。 重写onDraw()方法 绘制自定义View…

LeetCode 965. 单值二叉树

文章目录1. 题目2. 解题2.1 递归2.2 循环1. 题目 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 2. 解题 2.1 递归 class Solution { public:bool isUnivalT…

论文浅尝 - SIAM ICDM 2020 | 基于图时空网络的知识引导的诊断预测

论文笔记整理&#xff1a;吴锐&#xff0c;东南大学硕士。来源&#xff1a;SIAM ICDM 2020论文下载地址&#xff1a;https://epubs.siam.org/doi/abs/10.1137/1.9781611976236.3 动机基于电子病历&#xff08;EHR&#xff0c;Electronic Health Records&#xff09;对患者未来的…

Oceanus:美团HTTP流量定制化路由的实践

背景 Oceanus是美团基础架构部研发的统一HTTP服务治理框架&#xff0c;基于Nginx和ngx_lua扩展&#xff0c;主要提供服务注册与发现、动态负载均衡、可视化管理、定制化路由、安全反扒、session ID复用、熔断降级、一键截流和性能统计等功能。本文主要讲述Oceanus如何通过策略抽…

对商品的评论进行数据挖掘得到评论标签(商品属性+评论观点),以及用户的分组信息

对商品的评论进行数据挖掘得到评论标签&#xff08;商品属性评论观点&#xff09;&#xff0c;以及用户的分组信息&#xff1a; 第一步&#xff1a;对文本进行预处理&#xff0c;分词并进行语义角色标注 # -*- coding:utf-8 -*- import os from pyltp import Segmentor, Post…

文本对抗攻击入坑宝典

文 | 阿毅编 | 小轶如果是咱家公众号的忠实粉丝就一定还记得之前咱家一篇关于NLP Privacy的文章&#xff0c;不出意外的话&#xff0c;你们是不是现在依然还担心自己的隐私被输入法窃取而瑟瑟发抖。所以&#xff0c;我们又来了&#xff01;今天给大家讨论的是NLP Privacy中一个…