Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/screens.html#create-bitmaps

Android设备屏幕分为两个通用的属性:尺寸和密度。你应该期待应用将会被安装在屏幕的密度和尺寸都在范围内的设备上。正因为这样,你应该包含一些可替换的资源,以便应用在不同尺寸的屏幕和不同密度的屏幕效果最优。

  • 有4种普遍屏幕尺寸:small, normal, large, xlarge。、
  • 还有4种普遍的屏幕密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。

为了对不同的屏幕声明使用不同的布局和图像,你必须将这些备选资源分开放置,和不同的语言字符串很类似。

这里也应该意识到要考虑屏幕的方向,所以很多应用应该通过布局为不同的方向提供良好的用户体验。

创建不同的布局

为了在不同尺寸的屏幕上提升用户体验,你应该为想要支持的屏幕尺寸创建唯一的XML布局文件。
每一个布局文件应该保持在合适的资源目录下,以-< screen_size>为后缀,唯一的大屏幕布局应该被保存在目录res/layout-large下。

Note: Android为了适配屏幕会拉伸你的布局。所以,不需要关心每一种尺寸的布局元素的绝对尺寸,而应该关心布局之间的结构关系,否则会影响用户体验。

下面这个工程为大屏幕提供了一个合适的布局。

MyProject/res/layout/main.xmllayout-large/main.xml

文件名称要尽可能的准确,但是其中的内容为了不同尺寸的屏幕可以不一样。
一般在代码中简单的引用下布局文件:

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);
}

系统会在应用运行的时候基于设备的屏幕尺寸加载合适的布局文件。更多关于Android如何选择合适的可用资源请参见:Providing Resources。

像其它工程一样,这个工程为水平方向提供了适当的布局:

MyProject/res/layout/main.xmllayout-land/main.xml

默认情况下,layout/main.xml被用作于默认方向。

如果需要为大屏幕的水平方向屏幕提供布局,那么你需要同时使用large和land标识符:

MyProject/res/layout/              # default (portrait)main.xmllayout-land/         # landscapemain.xmllayout-large/        # large (portrait)main.xmllayout-large-land/   # large landscapemain.xml

Note: Android 3.2及更高的版本对于支持规定的屏幕尺寸有更为先进的方法。它允许你为一定范围内的屏幕尺寸提供资源,一定范围包括自小的宽度,高度和密度。这节课不覆盖这些新知识点,有关更多信息,请参见:Designing for Multiple Screens。

创建不同的位图

你应该提供合适的位图资源给每个通用的密度区域:low, medium, high and extra-high density,这可以帮助你在所有的密度下达到良好的图像效果和性能。

为了产生这些图像,你应该根据矢量格式的真实资源来为每一种密度提供扩展尺寸:

xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75

这里的意思是说,如果你为xhdpi的设备生成了一张200x200的图像,那么你应该为hdpi生成150x150的图像,以此推类。

然后,将这些文件放入到合适的图像资源目录下:

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

任何时候通过@drawable/awesomeimage引用图像的时候,系统会根据密度选择合适的位图图像。

Note: 低密度ldpi并不总是必须的。当你提供了hdpi的资源,系统会将hdpi资源缩小一半来适应ldpi的屏幕。

更多有关为APP创建icon资源的提示和指南,请参见:Iconography design guide.

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

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

相关文章

基本功 | Litho的使用及原理剖析

1. 什么是Litho&#xff1f; Litho是Facebook推出的一套高效构建Android UI的声明式框架&#xff0c;主要目的是提升RecyclerView复杂列表的滑动性能和降低内存占用。下面是Litho官网的介绍&#xff1a; Litho is a declarative framework for building efficient user interfa…

图解GPT-2(完整版)!

图解GPT-2&#xff08;完整版&#xff09;&#xff01;

论文浅尝 | 基于深度强化学习将图注意力机制融入知识图谱推理

论文笔记整理&#xff1a;陈名杨&#xff0c;浙江大学直博生。Introduction知识图谱&#xff08;KGs&#xff09;在很多NLP的下游应用中起着越来越重要的作用。但是知识图谱常常是不完整的&#xff0c;所以解决知识图谱补全的任务也非常重要。主要有三种方法来完成知识图谱补全…

Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的平台版本

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/platforms.html 每当APP使用了Android所提供的最新版的API时&#xff0c;应用应该继续对老版本提供支持&#xff0c;直到所有的设备都更新到最新版。这一节将会展示如何使用更流行的新版本API时还…

聊聊如何提升推荐系统的结果多样性

文 | 洪九(李戈)源 | 知乎个性化推荐系统的出现为处理信息过载问题提供了一个有效的工具&#xff0c;已经成为互联网各大平台(电商、信息流等)的标配&#xff0c;并在技术(个性化召回、个性化排序等)上取得了长足的发展&#xff0c;逐渐从传统模型过度到深度学习时代。但是&…

论文浅尝 | GNN with Generated Parameters for Relation Extraction

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。地址&#xff1a;https://arxiv.org/pdf/1902.00756.pdf来源&#xff1a;ACL2019在许多自然语言处理任务&#xff08;例如关系提取&#xff09;中&#xff0c;多跳关系推理是必不可少的&#xff0c;而图神经网络&am…

大众点评信息流基于文本生成的创意优化实践

1. 引言 信息流是目前大众点评除搜索之外的第二大用户获取信息的入口&#xff0c;以优质内容来辅助用户消费决策并引导发现品质生活。整个大众点评信息流&#xff08;下文简称点评信息流&#xff09;围绕个性化推荐去连接用户和信息&#xff0c;把更好的内容推荐给需要的用户。…

LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)

1. 题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意&#xff0c;可能存在多种有效的插入方式&#xff0c;只要树在插入后仍保持为二叉搜索…

docker的简单操作和端口映射

docker的简单操作和端口映射&#xff1a;https://www.cnblogs.com/lixaingyang/p/11976827.html docker的简单操作和端口映射 一&#xff1a;简介 Docker镜像 在Docker中容器是基于镜像启动的 镜像是启动容器的核心 镜像采用分层设计&#xff0c;最顶层为读写层 使用快照COW技…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之启动一个Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/index.html 导言 用户通过导航退出或者返回应用的时候&#xff0c;应用中Activity的生命周期会在不同的状态之间变换。举个例子&#xff0c;当Activity初次启动的时候&#xff0c;它会来到系统的…

论文浅尝 | 利用多语言 wordnet 上随机游走实现双语 embeddings

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究方向为知识图谱问答。来源&#xff1a;Knowledge Based System链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0950705118301412?via%3Dihub双语word embedding将两种语言…

实践中学到的最重要的机器学习经验!

文 | 微调源 | 知乎问答今天我们讨论一个很有实际意义的问题&#xff1a;你在实践中学到的最重要的机器学习经验是什么&#xff1f;以下回答来自知乎优秀答主微调。1.永远保持怀疑机器学习是最容易得到错误结论的一种解决方案。和编程、做表格、或者纯粹的数学建模不同&#xf…

Selenium爬虫

import re import requests# 伪装头部&#xff0c;反爬 headers {Host: m.weibo.cn,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36,X-Requested-With: XMLHttpRequest } # 目标微博用户…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/pausing.html 在APP的正常使用过程中&#xff0c;在前台工作的Activity有时可能会被其他的可视化组件挡住&#xff0c;而引起Activity进入Paused状态。举个例子&#xff0c;当一个半透明的Activit…

Leaf:美团分布式ID生成服务开源

Leaf是美团基础研发平台推出的一个分布式ID生成服务&#xff0c;名字取自德国哲学家、数学家莱布尼茨的一句话&#xff1a;“There are no two identical leaves in the world.”Leaf具备高可靠、低延迟、全局唯一等特点。目前已经广泛应用于美团金融、美团外卖、美团酒旅等多个…

LeetCode 658. 找到 K 个最接近的元素(二分查找)

1. 题目 给定一个排序好的数组&#xff0c;两个整数 k 和 x&#xff0c;从数组中找到最靠近 x&#xff08;两数之差最小&#xff09;的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样&#xff0c;优先选择数值较小的那个数。 示例 1:输入: [1,2,3,4,…

负数的开方到底等于多少?

文&#xff1a;杨树森知乎编&#xff1a;小鹿鹿lulu负数的开方到底等于多少?举个栗子拿出小本本, 一通变换,得到:Really? 且看下面详解乘方来源于乘法&#xff0c;我们可以归纳地定义&#xff0c;设 是一个域&#xff0c;, 则上述的域 可以是有理数域 , 实数域, 或复数域 前两…

综述 | 知识图谱实体链接:一份“由浅入深”的综述

本文转载自公众号&#xff1a;PaperWeekly。 作者丨Nicolas单位丨追一科技 AI Lab 研究员研究方向丨信息抽取、机器阅读理解本文介绍实体链接&#xff08;Entity Linking&#xff09;这一技术方向&#xff0…

Android官方开发文档Training系列课程中文版:管理Activity的生命周期之停止和重启Activity

原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/stopping.html#Start 在activity的生命周期内&#xff0c;适当的停止和重新启动activity是一个非常重要的过程&#xff0c;它可以确保用户能感觉到APP一直是存活状态&#xff0c;并且不会丢失他们…

selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’解决

selenium.common.exceptions.WebDriverException: Message: chromedriver’解决&#xff1a; https://blog.csdn.net/weixin_44318830/article/details/103339273 今天在做selenium测试的时候,可能是很久没用了,直接报了这个异常! 相信很多第一次学习selenium的同学们也对这个异…