Android 支持分辨率 支持多屏幕机制

在Android上进行开发,免不了要支持多分辨率屏幕支持,所以就不得不了解一下Android 的多屏幕支持机制。

 

首先来了解一下相关的术语。


1.Screen size 屏幕实际尺寸,Android的屏幕实际尺寸分为3个通用的尺寸。

 

2.Aspect ratio 长宽比

 

3.Resolution 分辨率

 

4.Density 密度

 

5.Density-independent pixel 密度无关的像素

 

介绍:Adnroid1.6或以上SDK,在AndroidManifest.xml中提供新的一个元素<supports-screens>用于支持多屏幕机制。

 

<supports-screens
android:largeScreens="true"   //是否支持大屏
android:normalScreens="true"  //是否支持中屏
android:smallScreens="true"   //是否支持小屏
android:anyDensity="true"     //是否支持多种不同密度
/>
 

 

Android提供3种方式处理屏幕自适应


一.预缩放的资源(基于尺寸和密度去寻找图片)


1.如果找到相应的尺寸和密度,则利用这些图片进行无缩放小时。


2.如果没法找到相应的尺寸,而找到密度,则认为该图片尺寸为 "medium",利用缩放这个图片显示。


3.如果都无法匹配,则使用默认图片进行缩放显示。默认图片默认标配 "medium" (160)。

 

 

二.自动缩放的像素尺寸和坐标(密度兼容)


1.如果应用程序不支持不同密度android:anyDensity="false",系统自动缩放图片尺寸和这个图片的坐标。
(代码中体现)
2.对于预缩放的资源,当android:anyDensity="false",也不生效。
3.android:anyDensity="false",只对密度兼容起作用,尺寸兼容没效果

 

 

三.兼容模式显示在大屏幕,尺寸(尺寸兼容)


1.对于你在<supports-screens>声明不支持的大屏幕,而这个屏幕尺寸是normal的话,系统使用尺寸为    ("normal")和密度为("medium)显示。

 

2. 对于你在<supports-screens>声明不支持的大屏幕,而这个屏幕尺寸是larger的话,系统同样使用尺寸为                   ("normal")和密度为("medium)显示,不过会出现一层黑色的背景。不是居中显示。

 

密度独立:


系统默认应用支持DIP单位的,三个使用DIP的地方:


1.加载资源时,使用DIP实现预缩放的资源。


2.在Layout使用DIP,系统自动完成缩放。


3.在应用程序中,自动缩放一些绝对像素。

 

(只有在android:anyDensity="false"生效)即屏幕自适应方式二


4.像素单位都使用DIP,文本单位使用SP

 

最佳屏幕独立实践:


1.使用wrap_content, fill_parent 和使用dip作为像素单位in XML layout files。


2.避免使用AbsoluteLayout


3.在代码中,不要使用像素数字硬编码,而是要通过dip转换为px。


例子:


你使用手势分析器分析一个scroll手势,假如,你滚动的距离是16px。


1.在一个160dip的屏幕中,你实际移动距离 16px / 160dpi = 1/10th of an inch (or 2.5 mm)


2.在一个240dip的屏幕中,你实际移动距离 16px / 240dpi = 1/15th of an inch (or 1.7 mm)


// The gesture threshold expressed in dip


private static final float GESTURE_THRESHOLD_DIP = 16.0f;


// Convert the dips to pixels


final float scale = getContext().getResources().getDisplayMetrics().density;


mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale);

 

4.使用密度和/或尺寸特定资源(通过文件夹)

 

关于预缩放或者自动缩放图片或9格图


1.系统是一定对会资源包下的图片进行合理的缩放。


例如:一张240x240高密度图片,显示在中密度的屏幕上,图片大小自动变为160x160。


2.你在API中不会得到被缩放后的图片尺寸,得到还是你原来图片的尺寸。


3.如果你不想系统自动帮你缩放图片,可以建立一个res/drawable-nodpi文件夹,存放你的图片。


4.也可以通过BitmapFactory.Options 完成系统自动缩放图片或9格图(在画图时)。


5.自动缩放图片比预缩放花费更多CPU,但是用更少内存(RAM or ROM ?)

Android-Android屏幕适配方案自动生成不同分辨率的值 Android 屏幕适配方案,自动生成不同分辨率的值 立即下载

相关推荐

XTDrone——无人机基于2D激光Lidar进行二维运动规划(细节提醒以及相关报错解决)

本文介绍了在Ubuntu 20.04系统无人机基于ROS Noetic实现HectorSLAM二维激光建图与运动规划的完整流程。主要内容包括:安装必要ROS依赖库;修改HectorSLAM的launch文件,解决坐标系转换问题;配置地图发布参数以避免覆盖已建地图;启动PX4仿真环境与XTDrone通信模块;最后通过2D导航目标点实现无人机运动规划。文中详细说明了各步骤的关键配置修改,并提供了处理常见错误(如TF转换超时)的解决方案。实现了从激光SLAM建图到路径规划的过程。

weixin_45390670的博客 994

<supports-screens> 让你的layout适应屏幕的大小包括 平板

大家都知道,Android 2.3 SDK发布的时候,在SDK中增加了第三方add-ons,其中就包括了针对平板电脑的Galaxy Tab Addon。 当我们启动一个新的平板电脑模拟器的时候,首先我们需要设置“Scale display to real size"选项,这将让平板电脑的屏幕大小与我们电脑屏幕的大小匹配。以我的电脑为例,我的屏幕大小是1440x900px。

z104207的专栏 2万+

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 818

多屏适配supports-screens

屏幕大小(screen size) – 屏幕的实际大小,用屏幕对角线长度来衡量(比如3.4寸,3.8寸)。android把屏幕分为以下4种:small,normal,large,extra large。 怎么判断? 屏幕密度(Screen Density) -  一块实际的屏幕区域有多少个像素,一般用dpi衡量(每英寸有多少个点)。相比起medium、high屏幕密度的设备,在一块确定

Android开发 1197

Ren’py教程《从入门到精通》

Ren’py是什么?Ren'py是一款用于制作视觉小说、冒险游戏、galgame的游戏制作工具,被来自世界各地的数千名创作者使用。Ren'py的名字由Ren’ai和Python混合而成,而Python也是Ren'py所使用的环境语言。Ren'py可以帮助你使用文字、图像和声音来讲述在计算机和移动设备上运行的交互式故事。这些既可以是视觉小说,也可以是生活模拟游戏。易于学习的脚本语言允许 任何人都可以有效地编写大型视觉小说,而它的Python 脚本足以应对复杂的 模拟游戏。

2302_77140651的博客 1万+

063、推挽变换器的磁偏问题与解决

本文针对推挽变换器中的磁偏问题展开分析。作者通过实际案例指出,磁偏主要由开关管导通压降差异和驱动信号不对称引起,会导致变压器饱和、MOS管炸毁等问题。文章提供了四种解决方案:采用电流模式控制、添加隔直电容、优化对称驱动设计以及引入磁芯气隙(作为最后手段)。调试时应重点观察原边电流波形对称性、变压器声音和直流分量。作者强调实践经验的重要性,建议预留隔直电容位置,并指出推挽拓扑在500W以上功率场合的局限性。这些基于实战的经验总结为电源工程师提供了有价值的参考。

Jack010169的博客 310

关于屏幕适配的学习(support-screens)

语法:<supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android

祝福的博客 8583

广东省低应变题库

11.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,采用低应变法对混凝土预制桩进行检测时,地基基础设计等级为甲级的桩基工程抽检桩数不应少于总桩数的30%,其余桩基工程抽检桩数不应少于总桩数的20%,且不得少于10根;16.按《建筑地基基础检测规范》DBJ/T15-60-2019的规定,当对某桩的桩身完整性判定为III类时,可认为该桩不满足验收条件,不用进一步确定该桩桩身缺陷对桩身结构承载力的影响程度。2.地基基础检测所用计量器具均应在检定(校准、验证)的有效期内,性能符合相关技术要求。

ZShy001238的博客 318

android系统定制添加分辨率,density设置

本文基于qcom msm8909 android5.1平台,因为客户需求以及实际使用,主板接入的显示屏有各种尺寸,这样对屏幕的显示造成了极大的影响,因此着手开发了一个设置功能,主要针对屏幕分辨率和density等参数的设置。 首先想到的是调试过程中,在android4.3之后,官方引入了一个wm的命令工具(wm工具简介及使用),但在开发过程中,遇到个很蛋痛的问题,问题现象如下: 笔者采用jni...

wang 恒 的博客 1万+

手把手教您同花顺如何设置大盘分时均价线

本文将手把手教你如何在同花顺PC端开启大盘指数分时图📈

XiaoqiangClub的博客 4381

MATLAB基础应用精讲-【数模应用】信用评分模型(附R语言和python代码实现)

信用评分模型是近年来兴起的一种为了保障银行和其他金融部门的金融安全而设立的一种关于人身金融权限的划定模型。该模型指根据客户的信用历史资料,利用一定的信用评分模型,得到不同等级的信用分数,根据客户的信用分数,来决定客户所可以持有的金额权限,从而保证还款等业务的安全性。而随着在现代社会和公司中,贷款,信用卡的作用日渐突出,信用评分模型的发展前景不可估量。信贷风险是指借款人因偿还贷款或履行合同承诺而破产而产生损失的可能性。传统上,它与贷款人无法偿还所欠利息和本金、影响现金流和增加装配成本所产生的风险有关。

qq_36130719的博客 364

ios系统和android系统ui尺寸如何统一

android测试机: 一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi  红米: 1280x720,4.7英寸,312dpi 35phoe:480*800,4英寸,233dpi 小米1s:480*854,4英寸,245dpi ios测试机: iPhone5c:1136x640,4英寸,326dpi 现

lijinchao2007的专栏 1401

智能车图像处理5-入门级分析4 ---环岛的状态机与补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 8228

android 自适应 多屏幕支持

1、屏幕相关概念  1.1分辨率  是指屏幕上有横竖各有多少个像素  1.2屏幕尺寸  指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸  android将屏幕大小分为四个级别(small,normal,large,and extra large)。  1.3屏幕密度  每英寸像素数  手机可以有相同的分辨率,但屏幕尺寸可以不相同,  Diago

猴子 449

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android系统如何自适应屏幕大小

1、屏幕相关概念  1.1分辨率  是指屏幕上有横竖各有多少个像素  1.2屏幕尺寸  指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸  android将屏幕大小分为四个级别(small,normal,large,and extra large)。  1.3屏幕密度  每英寸像素数  手机可以有相同的分辨率,但屏幕尺寸可以不相同,  Diago

zhaoxich的专栏 594

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

多屏分辨率

一.制作指南针针对540*960   直接在drawable文件夹下使用400*400的图片,但是在bitmapfactory.decoderesource获取出大小竟然是600*600,并且如何修改图片都是这个值 网上搜索可能跟屏幕大小有关系,而且我用的相当于没有大中小超大之类的分辨率单独的图片,所以有所放大和缩小 下面是屏幕基础内容, 1、屏幕相关概念  1.1分辨率  是指屏幕上有

z157794218的专栏 1714

android 自适应多屏幕支持

1、屏幕相关概念 1.1分辨率 是指屏幕上有横竖各有多少个像素 1.2屏幕尺寸 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 android将屏幕大小分为四个级别(small,normal,large,and extra large)。 1.3屏幕密度 每英寸像素数 手机可以有相同的分辨率,但屏幕尺寸可以不相同, Diago

jxmzhlj的专栏 602

Android自适应屏幕大小和layout布局(横屏|竖屏)

1、屏幕相关概念  1.1分辨率  是指屏幕上有横竖各有多少个像素  1.2屏幕尺寸  指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸  android将屏幕大小分为四个级别(small,normal,large,and extra large)。  1.3屏幕密度  每英寸像素数  手机可以有相同的分辨率,但屏幕尺寸可以不相同,  Diago

Android移动开发者的专栏 1万+

重拾Android之路之Android icon图标、splash启动页常用尺寸

引言 在出发之前,预备好android常用图标、图片的尺寸以及它们存放的位置吧! 正文 icon图标尺寸: drawable-hdpi-icon 72*72 drawable-ldpi-icon 36*36 drawable-mdpi-icon 48*48 drawable-xhdpi-icon 96*96 drawable-xxhdpi-icon 144*144 drawabl...

u011652925的博客 1373

android屏幕适配的那些事~

1、屏幕相关概念 1.1分辨率 是指屏幕上有横竖各有多少个像素 1.2屏幕尺寸 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 android将屏幕大小分为四个级别(small,normal,large,and extra large)。 1.3屏幕密度 每英寸像素数 手机可以有相同的分辨率,但屏幕尺寸可以不相同, Diagonal pixel

xingqisan的专栏 1617
上一篇: android屏幕密度(Density)和分辨率的关系
下一篇: 动态改变Android控件大小
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值