因为我们知道Android带有不同的各种设备
功能,分辨率和屏幕大小,以便开发支持的应用程序
多个(小和大)屏幕存在尺寸和布局的障碍.
这导致屏幕尺寸,分辨率和DPI的不同组合,并且在设计和开发Android设备时产生了相当大的挑战.虽然其他一些制造商(非Android)具有不同的分辨率和DPI,但它们共享相同的屏幕尺寸,并且分辨率遵循相同的宽高比.因此,可以创建图像以适合非Android设备.
我的问题是,为了满足要求,应遵循适当的流程或架构吗?
请记住,我们确实有不同大小和分辨率的平板电脑.
我知道Android Developer包含这些信息,但我的观点来自实现.
据我所知,我所理解的是,设计Android图形甚至程序员必须知道设计概念.
解决方法:
最后创建了一个处理多个屏幕的布局和图标的结构.
Android根据两个参数将设备显示分为几类:
>屏幕尺寸,显示器的物理尺寸(对角线测量)
>屏幕密度,显示器的物理像素密度(以像素/英寸为单位,或以ppi为单位)
确定屏幕尺寸&密度很快,请为Android安装“What’s my Size”应用程序.
屏幕尺寸
Android定义了四种通用屏幕尺寸:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
>大多数手机分为小型或普通型(对角线约3至4英寸).但现在,有很多大屏幕手机,如Galaxy S4,HTC One,Xperia Z.
>像三星Galaxy Tab这样的小型平板电脑被归类为大型(大于4英寸)
>超大型适用于大型设备,例如大型平板电脑
Android定义了四种通用屏幕密度:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
典型:
>屏幕大小对您的应用布局影响最大
>屏幕密度对您的图像和图形资源影响最大
它列出了here设备屏幕的百分比差异
> Ldpi- 75%
> Mdpi- 100%(根据Android开发者网站的基础)
> Hdpi- 150%
> XHdpi- 200%
但是我们现在知道大多数设备都带有480X800所以我认为这是基于设备,所以我们的新计算会喜欢这个
> Ldpi- 50%
> Mdpi- 66.67%
> Hdpi- 100%
> XHdpi- 133.33%
这意味着第一个图标和设计将仅为480X800创建,然后为其余图标和设计创建(即Ldpi,Mdpi,Xhdpi).
所有布局都有常见的图像,颜色和形状必须一致(没有复杂的形状,没有曲线),因此对于这种图像,我们创建了9patch,将其放入“drawable(no-suffix)”文件夹中.要创建9Patch图像,您可以使用DrawNinePatch或BetterNinePatch
现在只需根据Android的标准重命名您的图像并使用hdpi完成您的应用程序,然后只需使用drawable-hdpi文件夹和Open Adode Photoshop(推荐)
创建多个大小的Action(只需根据百分比更改大小)一旦Action为所有大小创建然后只做Batch Automate并给予source(drawable-hdpi)和目标(drawable-ldpi,drawable-mdpi,drawable-xdpi).
我之所以坚持使用Photoshop是因为它会使用动作自动调整图像大小,还有一点是你不需要重命名文件(它将指定与原始文件相同的名称).
完成所有图像的创建后,刷新项目并进行测试.
有时可能有可能支持屏幕(xhdpi,hdpi,mdpi)的布局可能会被小屏幕(ldpi)切割,所以为了处理这个,只需为它创建单独的布局文件夹(layout-small)并添加ScrollView(主要是) .而已.
片剂
平板电脑分为两种尺寸.
> 7“(1024X(600-48(导航栏)))= 1024X552(drawable-large)
> 10“(1280X(800-48(导航条)))= 1280X752(drawable-xlarge)
在这里我们需要为屏幕创建图像并相应地放置它们
总而言之,我们将在我们的应用程序中使用此文件夹来支持多个屏幕.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
将更多的限定符组合与屏幕大小和屏幕密度
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
屏幕密度和版本的更多限定符
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
以及屏幕大小和版本的更多限定符
drawable-large-v11
drawable-xlarge-v11
以及最小宽度概念(SW)的更多限定符
drawable-sw???dp
在Android V3.0 Honeycomb中,他们引入了SW(最小宽度)的新概念,其中设备被分类为屏幕宽度,因此如果我们创建名为drawable-sw360dp的文件夹,则具有720dp(宽度或高度)的设备将使用此文件夹中的资源.
例如,找到三星Galaxy S3 dp后缀为drawable-sw?dp
参考DP Calculation,如果你想支持你的布局或绘制到S3,那么计算就是这样
px =设备的宽度= 720
dpi =设备密度= 320
公式给出
px = dp * (dpi / 160)
交换公式因为我们有px的值
dp = px / (dpi / 160)
现在投入价值,
dp= 720 / (320/160);
dp=360.
所以drawable-sw360dp将完成这项工作
从GsmArena获取设备配置
Sameway你也可以根据Device的Android API版本创建文件夹,即drawable-hdpi-v11`,因此具有API11的设备是Hdpi然后它将使用这些资源.
其他提示:
>使用相对布局,dp,sp和mm
dp单位 – 在160ppi屏幕上归一化为1个物理像素的设备无关像素,即中密度.在运行时缩放.用于屏幕元素尺寸
sp单位 – 缩放像素,指定为浮点值,基于dp单位,但另外根据用户的字体大小首选项设置进行缩放.在运行时缩放.用于字体大小
你应该总是使用RelativeLayout进行布局;不推荐使用AbsoluteLayout,不应使用它.
>使用适当的图像格式 – PNG与JPEG
Android“首选”PNG用于位图图像文件,“接受”JPEG,并“阻止”GIF.
但是,PNG和JPEG不是等价物.他们有不同的质量权衡,PNG并不总是最好的:
与PNG相比,JPEG可以提供高达50%的文件大小缩减,如果您的应用程序是图像密集型的,这是非常重要的
对于相同的文件大小,更高质量的“有损”JPEG可能看起来比高度压缩的“无损”PNG更好
>为图像和图形添加标签以进行调试
>使用supports-screens元素
>使用实际设备值配置仿真器
通常,桌面系统以72ppi(Mac)或96ppi(Windows,Linux)显示.与移动相比,桌面显示器始终是低密度的.
始终将Android仿真器配置为模拟真实设备值,并始终将其设置为可缩放以模拟设备密度.
在Eclipse中,可以轻松地创建多个模拟器(从Eclipse菜单栏,选择Window> AVD Manager> New),配置实际设备的值:
为其正在模拟的真实设备命名模拟器
指定分辨率,不要使用内置通用尺寸
设置设备密度以匹配实际设备(在“硬件”窗格中将“抽象LCD属性”设置为实际密度,始终为整数值)
启动设备时,请始终选择“缩放显示”为实际尺寸,然后以英寸为单位键入实际屏幕尺寸.
如果未设置设备密度,则仿真器默认为低密度,并始终加载特定于ldpi的资源.分辨率(像素尺寸)将是正确的,但您的密度相关图像资源将无法按预期显示.
当然,您所做的任何事情都不会在较低密度的桌面显示器上再现更高密度的图像质量.
以下是截至2012年10月1日的7天期间收集的数据.要查看有关Android平台版本的最新统计信息,请访问go to here
基于屏幕尺寸
基于屏幕密度
标签:android,android-layout,screen
来源: https://codeday.me/bug/20190911/1803646.html