安卓手机APP开发__屏幕兼容性概述

安卓手机APP开发__屏幕兼容性概述

目录

概述

屏幕大小

灵活的布局

备选的布局

可改写的图像

像素的深度

深度依赖

备选的位图

向量图形


概述

安卓运行各种各样的设备,它们有不同的屏幕大小和屏幕的像素深度。
系统执行基本的缩放和变形来适配在不同的屏幕大小上的用户界面,
但是这里有一些方法来帮助你的用户界面更好地适应每一种类型的屏幕。

这里提供了一个安卓系统上可用的特性,帮助你的APP来适配。对于更多的
如何在不同的屏幕上的构建你的APP的指令,见如下的文档:

支持不同的屏幕大小
支持不同的像素深度

屏幕大小

屏幕大小是你的APP的用户界面的可见的空间。屏幕的大小,它能被你的APP识别,
它不是设备屏幕的实际的大小。APP必须考虑到屏幕的方向,系统方向,例如,导航条
窗口配置改变区,例如当使用多窗口模式时的切换窗口。

灵活的布局

默认情况下,安卓为了适应当前的屏幕大小,会改变你的APP的布局。
对于屏幕大小上的微小变化,为了帮助你的APP的布局更好的调整,实现
你的布局的灵活性。不要硬编码你的用户界面的组件的位置和大小。代替的是
让视图的大小可以改变,指定视图的相对于父级视图的相对位置,这样就可以实现
你的目标顺序以及相对位置在布局有缩放时保持不变。

为了了解更多的灵活布局的知识,见响应式设计。


备选的布局

一个灵活的布局是重要的,但是你也需要设计不同的布局,在不同的设备上,对于
可用的空间上,来优化用户的使用体验。安卓让你提供一个备选的布局文件,系统
基于当前的设备屏幕的大小,在运行时应用布局文件。


为了了解如何创建一个备选的布局,见可适配的设计


可改写的图像

因在你的布局需要为了适配当前的屏幕而改变,所以你要把位图附加到布局视图的可能的位置上。
然而,在任意方向上改变一个普通的位图,能导致很奇怪的缩放,和失真的图像。

为了解决这个问题,安卓支持分成九块的位图,在这个位图上,你能一个小的区域是可以改变的
图像的其它区域是保持不变的。

为了了解更多的关于分成九块的位图,见九块位图的可修改性。


像素的深度

像素的深度就屏幕上一个物理区域上的像素的个数。它被引用为dpi(每英寸上的点数)
这不同于屏幕的分辨率,它是一个屏幕上的总的像素的数量.


深度依赖

当在屏幕上显示不同的像素深度时,当你的用户界面设计的视图的用户视角来看,
它要维持的物理尺寸时,你的APP就达到了“深度依赖”了。维持深度依赖是很重要的,
因为没有了它,一个用户界面元素比如一个按钮在一个低的深度的屏幕上可能出现很大的情况,
并且在一个高的深度的屏幕上又很小的情况。

通过提供独立于深度的像素作为一个度量的单位,安卓帮助你完成了深度依赖。

为了了解关于深度独立的像素,见使用深度独立像素。

备选的位图

为了让你的图像在所有的屏幕上都看起来很好,为了匹配每个屏幕深度,提供了备选的位图。
如果你的APP提供了仅为低深度屏幕准备的位图,当在一个高的深度的屏幕上时,安卓要缩放它
这在位图会引起可见的缩放效应。所以你的APP必须包括在一个高的分辨率下的备选位图。

为了了解如何提供备选的位图,见提供备选的位图。


向量图形

对于简单的类型的图像,例如,图标,通过使用向量图形,你能避免
为每一个深度,创建一个独立的图像。因为,向量图形定义了几何的线条的路径,
来代替像素,它们能以任意的大小进行绘制,而不用缩放。

为了了解关于向量图形的更多的信息,见优先的向量图形。

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

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

相关文章

iview(viewUI) span-method 表格实现将指定列的值相同的行合并单元格

效果图是上面这样的&#xff0c;将第一列的名字一样的合并在一起&#xff1b; <template><div class"table-wrap"><Table stripe :columns"columns" :data"data" :span-method"handleSpan"></Table></div&…

HDFS- DataNode磁盘扩缩容

HDFS- DataNode磁盘扩缩容 背景: 缩减/增加节点磁盘 方案介绍: 采用hdfs dfsadmin -reconfig 动态刷新配置实现,不停服扩缩容。 注意事项: 请在进行缩容之前,务必了解实际的数据量,并确保磁盘有足够的空间来容纳这些数据。还需要考虑未来的使用需求,要预留一定数量的空间…

如何成为一个优秀的程序员

1 衡量一个程序员是否优秀&#xff0c;不是看程序员懂多少编程语言和编程技能&#xff0c;也不是看程序员做过多少项目&#xff0c;写过多少行代码&#xff0c;发表多少篇技术文章&#xff0c;甚至也不是看程序员的工作年限。 衡量程序员&#xff0c;第一看薪资&#xff0c;第…

java+vue3+iclientol实现警务地理信息系统实践

警务地理信息系统&#xff08;Police Geographic Information System, PGIS&#xff09;是一种专为警务工作设计的地理信息系统&#xff0c;它结合了地理信息技术、数据库技术、网络技术和现代警务理念&#xff0c;旨在提升公安机关的空间数据分析、决策支持、指挥调度、案件管…

SpringMVC的WebMvcConfigurer及返回

由于很久很久没有做过纯springmvc的代码了&#xff0c;好多东西都遗忘&#xff0c;最近接手了一个古早项目springmvc的。记录一下&#xff1a; 1、WebMvcConfigurer 是 Spring Framework 中的一个接口&#xff0c;它提供了一种扩展 Spring MVC 配置的方式。通过实现 WebMvcConf…

【QVariant类型剖析】

QVariant类型剖析 &#x1f31f; 官方文档中给出的定义&#x1f31f; 特性&#x1f338;QVariant实战应用&#x1f338;项目成果展示 &#x1f31f; 官方文档中给出的定义 &#x1f4d8;Because C forbids unions from including types that have non-default constructors or…

基于springboot+vue+Mysql的外卖点餐系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟

你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟 文章目录 你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟一、概述二、CallerMemberNameAttribute类三、CallerFilePathAttribute 类四、CallerLineNumberAttribute 类…

Android 简单的下拉选择框实现

要实现这种效果,目前知道的方法有以下两种,Spinner 和 ListPopupWindow,当然肯定还有很多别的方法,这里我们先尝试使用ListPopupWindow来实现这个效果; 以下是一个简单的demo: public class MainActivity extends AppCompatActivity {private List<String> dataList;pr…

三方库的调用方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言三方库的调用方法1. **下载并安装Boost库(三方库)**2. **配置开发环境**3. **包含Boost(三方库)头文件**4. **编写代码**5. **链接Boost库(三…

QueryPerformanceCounter实现高精度uS(微妙)延时

参考连接 C# 利用Kernel32的QueryPerformanceCounter封装的 高精度定时器Timer_kernel32.dll queryperformancecounter-CSDN博客https://blog.csdn.net/wuyuander/article/details/111831973 特此记录 anlog 2024年5月11日

ubuntu安装oceanbase调通本地navicat链接

分为两部分 一安装oceanbase服务 准备工作 mkdir -p /data/1 /data/log1 chown -R admin.admin /data/1 /data/log1/偷偷说&#xff1a;其实这步我忘记执行&#xff0c;也没影响我安装 oceanbase程序是很占内存的在安装时我们要先下载好安装包&#xff1a; 然后放在能记住的…

【C语言】/*操作符(上)*/

目录 一、算数操作符&#xff1a;、-、*、/、% 1.1 和 - 1.2 * 1.3 / 1.4 % 二、赋值操作符&#xff1a; 和符合赋值 2.1 连续赋值 2.2 复合赋值(自操作) 三、单目操作符&#xff1a;、--、(正号)、-(负号) 3.1 和 -- 3.1.1 前置 3.1.2 后置 3.1.3 前置-- …

稳定网络的诀窍:静态住宅代理解决方案

在数字化时代&#xff0c;网络稳定性对于个人和企业都至关重要。然而&#xff0c;由于多种因素的影响&#xff0c;如地理位置、网络拥堵或网络安全问题等&#xff0c;网络稳定性常常受到挑战。为了应对这些挑战&#xff0c;静态住宅代理作为一种高效且可靠的网络解决方案&#…

C++容器——list

目录 list容器 list容器使用流程 加入头文件 定义 list容器的使用 添加元素&#xff1a; 删除元素&#xff1a; 访问元素&#xff1a; 容器大小&#xff1a; 迭代器操作&#xff1a; 其他操作&#xff1a; list容器 功能&#xff1a;将数据进行链式存储 链表(list…

AWTK应用程序将资源放到 zip 文件中的方法

在支持文件系统的时候&#xff0c;AWTK 的资源缺省是以独立文件的形式放在指定目录里的。但在有的情况下&#xff0c;把全部资源文件放到一个 zip 文件中&#xff0c;是更好的或唯一的选择。比如&#xff1a; 开发 PC 应用程序。 在没有文件系统的情况下&#xff0c;把资源放到…

【软测学习笔记】Python 教程(1)

&#x1f31f;博主主页&#xff1a;我是一只海绵派大星 &#x1f4da;专栏分类&#xff1a;软件测试笔记 &#x1f4da;参考教程&#xff1a;菜鸟教程❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、Python 简介 二、Python发展历史 三、Python 特点 四、 Python 环…

kali linux2024.1版安装

1 基于 VMware 安装 Kali 系统 打开已经安装好的 VMware 程序&#xff0c;点击选项卡中的“主页”--》而后点击“创建新的虚拟机” 选择“典型(推荐)”&#xff0c;并点击“下一步” 客户机操作系统镜像选择&#xff1a;选择“稍后安装操作系统”&#xff0c;并点击“下一步”…

《中阿科技论坛(中英文)》是什么级别的期刊?是正规期刊吗?

问题解答 问&#xff1a;《中阿科技论坛&#xff08;中英文&#xff09;》是核心期刊吗&#xff1f; 答&#xff1a;不是&#xff0c;但是正规期刊 问&#xff1a;《中阿科技论坛&#xff08;中英文&#xff09;》是什么级别期刊&#xff1f; 答&#xff1a;省级 主管单位…

多线程的情况下 AopContext.currentProxy()切面代理失效问题

多线程的情况下 AopContext.currentProxy()切面代理失效问题 在多线程环境下&#xff0c;AopContext.currentProxy() 可能会遇到问题&#xff0c;特别是在某些情况下&#xff0c;它无法正确地获取到当前线程的代理对象。这通常发生在以下几种情况&#xff1a; 线程不是由Spri…