应用程序框架支持多个屏幕

时间:2012-09-03 04:48:05

标签: android android-layout screen

我们知道Android带有各种不同的设备 功能,分辨率和屏幕大小,以便开发支持的应用程序 多个(小和大)屏幕存在尺寸和布局的障碍。

这会导致屏幕尺寸,分辨率和DPI 的不同组合,并且在设计和开发Android设备时会带来相当大的挑战。虽然其他一些制造商(非Android)具有不同的分辨率和DPI,但它们共享相同的屏幕尺寸,并且分辨率遵循相同的宽高比。因此,可以创建图像以适合非Android设备。

我的问题是,为了满足要求,应该遵循适当的流程或架构吗?

enter image description here

请记住,我们确实有不同大小和分辨率的平板电脑。

我知道Android Developer包含此信息,但我的观点来自实施。

据我所知,我所理解的是,设计Android图形甚至程序员必须知道设计概念。

2 个答案:

答案 0 :(得分:146)

最后创建了一个处理多个屏幕的布局和图标的结构。

Android根据两个参数将设备显示分为几类:

  • 屏幕尺寸,显示器的物理尺寸(对角线测量)
  • 屏幕密度,显示器的物理像素密度(以像素/英寸为单位,或以ppi为单位)`

确定屏幕尺寸&密度很快,请安装" What's my Size"适用于Android的应用。

屏幕尺寸

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
  • 像Samsung 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%

enter image description here

但是我们现在知道大多数设备都带有 480X800 ,所以我认为这是基于设备的,所以我们的新计算会喜欢这个

  • Ldpi- 50%
  • Mdpi- 66.67%
  • Hdpi- 100%
  • XHdpi- 133.33%

这意味着将仅为 480X800 创建第一个图标和设计,然后为其他图标和设计创建(即Ldpi,Mdpi,Xhdpi)。

有些图像对于所有版面都是通用的,并且颜色和形状必须一致(没有复杂的形状,没有曲线)所以对于这种图像我们正在创建9patch,它将被放入“可绘制的”中-suffix)“文件夹。要创建9Patch图像,您可以使用DrawNinePatchBetterNinePatch

现在只需根据Android标准重命名您的图片,然后使用hdpi完成您的应用,然后点击drawable-hdpi文件夹并打开 Adode Photoshop (推荐) 创建多个大小的Action(只需根据百分比更改大小)一旦为所有大小创建了Action,然后执行Batch Automate并给予source(drawable-hdpi)和destination(drawable-ldpi,drawable-) mdpi,drawable-xdpi)。

我坚持使用Photoshop的原因是因为它会使用动作自动调整图像的大小,还有一点是你不需要重命名文件(它将指定与原始文件相同的名称)。

完成所有图像的创建后,刷新项目并进行测试。

有时支持屏幕(xhdpi,hdpi,mdpi)的布局可能会在小屏幕(ldpi)中被切割,因此为了处理这个,只需为它创建单独的布局文件夹(layout-small)并添加{ {1}}(大部分)。多数民众赞成。

<强>平板 平板电脑分为两种尺寸。

  1. 7&#34;(1024X(600-48(导航栏)))= 1024X552(drawable-large)
  2. 10&#34;(1280X(800-48(导航栏)))= 1280X752(drawable-xlarge)
  3. 在此我们需要为屏幕创建图像并相应地放置它们

    总而言之,我们的应用程序中将包含此文件夹以支持多个屏幕。

    ScrollView

    将与drawable drawable-ldpi drawable-mdpi drawable-hdpi drawable-xhdpi drawable-large drawable-xlarge

    进行更多限定符组合
    Screen size and Screen density

    使用drawable-large-ldpi drawable-large-mdpi drawable-large-hdpi drawable-large-xhdpi

    的更多限定符
    Screen density and Version

    以及drawable-ldpi-v11 drawable-mdpi-v11 drawable-hdpi-v11 drawable-xhdpi-v11

    的更多限定符
    Screen size and Version

    以及drawable-large-v11 drawable-xlarge-v11

    的更多限定符
    Smallest width concept(SW)

    在Android V3.0 Honeycomb中,他们引入了 drawable-sw???dp 的新概念,其中设备被分类为屏幕宽度,因此如果我们创建一个名为SW(smallest width)的文件夹,那么设备将具有720dp(或者宽度或高度)将使用此文件夹中的资源。

    例如,找到drawable-sw360dp dp 后缀为 drawable-sw?dp
    参考DP Calculation,如果您想支持您的布局或可绘制到S3,那么计算显示

    px =设备的宽度= 720
    dpi =设备密度= 320

    给出的公式

    Samsung Galaxy S3

    交换公式因为我们有px的值

        px = dp * (dpi / 160)
    

    现在放价值,

        dp = px / (dpi / 160)
    

    所以 dp= 720 / (320/160); dp=360. 将完成这项工作

    GsmArena获取设备配置 Sameway你也可以根据Device的Android API版本创建文件夹,即drawable-hdpi-v11`,这样设备就有了API11,而且它是Hdpi,那么它将使用这些资源。

    其他提示:

    • 使用相对布局,dp,sp和mm

      dp单位 - 在160 ppi屏幕上归一化为1个物理像素的设备无关像素,即中密度。在运行时缩放。用于屏幕元素尺寸

      sp units - 基于dp单位指定为浮点值的缩放像素,但另外根据用户的字体大小首选项设置进行缩放。在运行时缩放。 用于字体大小

      你应该总是使用RelativeLayout进行布局; AbsoluteLayout已弃用,不应使用。

    • 使用合适的图片格式 - PNG与JPEG

      drawable-sw360dp

      但是,PNG和JPEG不是等价物。他们有不同的质量权衡,PNG并不总是最好的:

      JPEG 可以比PNG提供高达50%的文件大小缩减,如果您的应用是图像密集型的话,这是非常重要的

      质量更高&#34;有损&#34; JPEG可能看起来比高度压缩的#34;无损&#34; PNG,文件大小相同

    • 为图片和图形添加标签以进行调试

    • 使用supports-screens元素

    • 使用实际设备值配置仿真器

      传统上,桌面系统显示为72ppi(Mac)或96ppi(Windows,Linux)。与移动相比,桌面显示器总是密度低。

      始终将Android模拟器配置为模拟真实设备值,并始终将其设置为缩放以模拟设备密度。

      在Eclipse中,可以轻松创建多个模拟器(从Eclipse菜单栏中选择 Window&gt; AVD Manager&gt; New ),并为实际设备配置值:

      为其正在模拟的真实设备命名模拟器 指定分辨率,不要使用内置通用尺寸 设置设备密度以匹配实际设备(在“硬件”窗格中将“抽象LCD属性”设置为实际密度,始终为整数值)

      启动设备时,请始终选择“缩放显示”为实际尺寸,然后以英寸为单位输入实际屏幕尺寸。

      如果您未设置设备密度,则仿真器默认为低密度,并始终加载特定于ldpi的资源。分辨率(像素尺寸)将是正确的,但您的密度相关图像资源将无法按预期显示。

      当然,您所做的任何事情都不会在较低密度的桌面显示屏上重现更高密度的图像质量。

    以下是截至2012年10月1日的7天期间收集的数据。要查看有关Android平台版本的最新统计信息,go to here

    基于屏幕尺寸

    enter image description here

    基于屏幕密度

    enter image description here

答案 1 :(得分:1)

设计师应该创建

的基础设计

base size of mdpi devices * density conversion factor of highest supported density bucket
size.Base屏幕尺寸为320 X 480 px,密度桶如下:

  • ldpi:0.75
  • mdpi:1.0(基密度)
  • hdpi:1.5
  • xhdpi:2.0
  • xxhdpi:3.0
  • xxxhdpi:4.0

要解决Android设备上的额外可用空间,应在两个方向(水平和垂直)使用可伸缩组件。详情请见:

http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/