为了账号安全,请及时绑定邮箱和手机立即绑定

Android启动屏幕图像大小以适应所有设备

Android启动屏幕图像大小以适应所有设备

翻阅古今 2019-07-26 15:14:47
Android启动屏幕图像大小以适应所有设备我有一个全屏PNG,我想显示在飞溅。这里只有一个错误,我不知道在每个可绘制的文件夹中放什么大小(ldpi, mdpi, hdpi,和xhdpi)。我的应用程序应该在所有的手机和平板电脑上运行良好和漂亮。我应该创建什么大小(以像素为单位),以便在所有屏幕上显示漂亮?
查看完整描述

3 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

免责声明

这一答案是从2013年开始的,已经严重过时。截至Android3.2,现在有6组屏幕密度。这个答案将尽快更新,但没有ETA。参考正式文件对于目前所有的密度(虽然有关特定像素大小的信息总是很难找到)。

这是tl/dr版本

  • 创建4个图像,每个屏幕密度一个:

    • XLarge(Xhdpi):640x960
    • 大型(Hdpi):480x800
    • 培养基(MDPI):320x480
    • 小(Ldpi):240x320
  • 朗读,阅读9-补丁图片游戏攻略在Android开发者指南中

  • 设计图像,在不影响最终结果的情况下,可以安全地拉伸区域。

这样,Android将为设备的图像密度选择合适的文件,然后按照9补丁标准扩展图像。

Tl;Dr.前面的全员员额

我在回答问题的设计方面。我不是开发人员,所以我无法为实现所提供的许多解决方案提供代码。唉,我的意图是帮助那些在我帮助开发我的第一个Android应用程序时迷失了方向的设计师们。

适合各种尺寸

使用Android,公司可以开发几乎任何大小的移动电话和表格,几乎可以使用他们想要的任何分辨率。由于这一点,没有“正确的图像大小”的飞溅屏幕,因为没有固定的屏幕分辨率。这对那些想要实现飞溅屏幕的人来说是个问题。

你的用户真的想看到一个飞溅的屏幕吗?

(顺便提一句,在可用性方面,Splash屏幕在某种程度上是不受欢迎的。有人认为,用户已经知道他使用的是什么应用程序,因此没有必要在屏幕上给你的形象贴上标签,因为它只会用“广告”来打断用户的体验。但是,它应该用于初始化时需要大量加载的应用程序(5s+),包括游戏之类的,这样用户就不会怀疑应用程序是否崩溃)。

屏幕密度;4级

因此,考虑到市场上手机的屏幕分辨率有这么多不同,谷歌实现了一些替代方案和可以提供帮助的优秀解决方案。你要知道的第一件事是屏幕分为4种不同的屏幕密度:

  1. 低密度(ldpi~120 dpi)
  2. 中等密度(MDPI~160 dpi)
  3. 高密度(hdpi~240 dpi)
  4. 超高密度(xhdpi~320 dpi)(这些dpi值是近似的,因为定制的设备具有不同的dpi值)。

你(如果你是一个设计师)需要知道的是,Android基本上是从4张图片中选择要显示的,这取决于设备。因此,您基本上必须设计4种不同的图像(虽然更多的可以开发为不同的格式,如宽屏,纵向/景观模式,等等)。

记住这一点:除非您为Android中使用的每一个分辨率设计一个屏幕,否则您的图像将伸展到适合屏幕大小。除非你的图像基本上是一个梯度或模糊,你会得到一些不想要的扭曲与拉伸。所以基本上有两个选项:为每个屏幕大小/密度组合创建一个图像,或者创建4个9补丁图像。

最难的解决方案是为每一个分辨率设计一个不同的飞溅屏幕。的末尾,您可以按照表中的决议开始。本页)还有更多。例:960x720没有列出)。假设图像中有一些小细节,比如小文本,你必须为每个分辨率设计多个屏幕。例如,在中等屏幕上显示的480x800图像可能看起来不错,但在较小的屏幕上(密度更高/dpi),徽标可能变得太小,或者某些文本可能变得不可读。

9-贴片图像

另一个解决办法是创建一个9补丁映像..它基本上是一个1像素透明的边框围绕着你的图像,通过在这个边框的顶部和左边绘制黑色像素,你可以定义你的图像的哪一部分将被允许伸展。我不会详细讨论9片图像是如何工作的,但简而言之,与顶部和左侧区域的标记对齐的像素是重复使用的像素,以拉伸图像。

几条基本规则

  1. 您可以在Photoshop(或任何能够准确创建透明PNG的图像编辑软件)中制作这些图像。
  2. 1像素的边框必须是完全透明的。
  3. 1像素的透明边框必须围绕在你的图像周围,而不仅仅是顶部和左边。
  4. 您只能在此区域绘制黑色(#000000)像素。
  5. 上边框和左边框(定义图像拉伸)只能有一个点(1pxx1px)、两个点(都是1px1px)或一条连续线(宽度x1px或1pxx高度)。
  6. 如果您选择使用2个点,图像将按比例展开(因此,每个点将轮流扩展,直到达到最终的宽度/高度)。
  7. 1px边框必须加上预期的基本文件尺寸。因此,一个100x1009补丁图像实际上必须有102x102(100x100+1px在上、下、左和右)。
  8. 9-补丁图像必须以*.9 png结尾

因此,您可以在徽标的两侧(顶部边框)放置1个点,在其上方和下面(左侧边框)放置1个点,而这些标记的行和列将是唯一要拉伸的像素。

下面是一个9补丁映像,102x102px(100x100最终大小,用于应用程序):

下面是相同图像的200%缩放:

注意顶部和左边的1px标记,表示哪些行/列将展开。

下面是这个应用程序中的100x100图片的样子:

如果扩展到460x140,下面是它想要的:

最后一件事要考虑。这些图像在你的屏幕上和大多数手机上看起来都很好,但是如果设备的图像密度很高,那么图像看起来就太小了。可能仍然清晰,但在一台分辨率为1920x1200的平板电脑上,这幅图像在中间会出现一个非常小的方形。那么解决办法是什么?设计了4个不同的9补丁发射器图像,每个为不同的密度集.为了确保不会发生收缩,您应该为每个密度类别设计最低的公共分辨率。收缩在这里是不可取的,因为9补丁只占拉伸,所以在收缩过程中,小文本和其他元素可能会失去可读性。

下面列出了每个密度类别的最小、最常见的分辨率:

  • XLarge(Xhdpi):640x960
  • 大型(Hdpi):480x800
  • 培养基(MDPI):320x480
  • 小(Ldpi):240x320

因此,在上面的分辨率中设计四个飞溅屏幕,展开图像,在画布周围放置一个1px透明边框,并标记哪些行/列是可伸缩的。请记住,这些图像将用于任何设备属于密度类别,因此您的ldpi图像(240x320)可能会被拉伸到1024x600,在一个超大的小图像密度平板上(~120 dpi)。因此,9补丁是最好的拉伸解决方案,只要你不想要一张照片或复杂的图形飞溅屏幕(请记住这些限制,因为你创建的设计)。

同样,要避免这种拉伸发生,唯一的方法是设计每个分辨率的一个屏幕(或者每个分辨率-密度组合,如果你想避免图像在高/低密度设备上变得太小/太大),或者告诉图像不要拉伸,并让背景颜色出现在任何可能发生拉伸的地方(还请记住,Android引擎呈现的特定颜色可能与Photoshop呈现的同一特定颜色不同,因为颜色配置文件)。

我希望这是有意义的。祝好运!




查看完整回答
反对 回复 2019-07-27
?
忽然笑

TA贡献1806条经验 获得超5个赞

纵向模式

MDPI为320x480 dp=320x480px(1x)

LDPI为0.75 x MDPI=240x360px

HDPI为1.5xMDPI=480x720px

XHDPI为2 x MDPI=640 x960px

XXHDPI为3x MDPI=960x1440px

XXXHDPI为4xMDPI=1280x1920px

景观模式

MDPI为480x320 dp=480x320px(1x)。

LDPI为0.75 x MDPI=360x240px

HDPI为1.5xMDPI=720x480px

XHDPI为2 x MDPI=960x640 px

XXHDPI为3 x MDPI=1440 x960px

XXXHDPI为4xMDPI=1920x1280px

编辑:

我建议你用洛蒂如果你在2019年读到这篇文章的话



查看完整回答
反对 回复 2019-07-27
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

纵向模式

MDPI为320x480 dp=320x480px(1x)

LDPI为0.75 x MDPI=240x360px

HDPI为1.5xMDPI=480x720px

XHDPI为2 x MDPI=640 x960px

XXHDPI为3x MDPI=960x1440px

XXXHDPI为4xMDPI=1280x1920px

景观模式

MDPI为480x320 dp=480x320px(1x)。

LDPI为0.75 x MDPI=360x240px

HDPI为1.5xMDPI=720x480px

XHDPI为2 x MDPI=960x640 px

XXHDPI为3 x MDPI=1440 x960px

XXXHDPI为4xMDPI=1920x1280px

编辑:

我建议你用洛蒂如果你在2019年读到这篇文章的话




查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 327 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信