这个答案来自2013年,已经严重过时.截至Android 3.2,现在有6组屏幕密度.这个答案将尽快更新,但没有预计到达时间.目前所有的密度都参考official documentation(尽管关于特定像素大小的信息总是很难找到).
创建4个图像,每个屏幕密度对应一个图像:
阅读Android开发人员指南中的9补丁图像 introduction
有了这个,Android将为设备的图像密度 Select 合适的文件,然后根据9-patch标准拉伸图像.
我是在回答与设计有关的问题.我不是开发人员,所以我无法提供代码来实现提供的许多解决方案.唉,我的意图是帮助那些像我帮助开发第一款Android应用程序时一样迷失方向的设计师.
有了Android,公司可以开发几乎任何大小的手机和桌子,几乎可以使用他们想要的任何分辨率.正因为如此,闪屏没有"合适的图像大小",因为没有固定的屏幕分辨率.这给想要实现闪屏的人带来了一个问题.
(另一方面,可用性方面的人对闪屏有些不满.有人认为,用户已经知道他点击了什么应用程序,没有必要用闪屏为你的形象打上烙印,因为它只会用"广告"中断用户体验.).但是,在初始化(5s+)时需要大量加载的应用程序(包括游戏等)中,应该使用它,这样用户就不会一直怀疑应用程序是否崩溃了)
因此,考虑到市场上手机的屏幕分辨率如此之多,谷歌推出了一些替代方案和漂亮的解决方案.首先你要知道的是,Android将ALL个屏幕分为4个不同的屏幕密度:
你(如果你是设计师)需要知道的是,Android基本上会根据设备的不同,从4幅图像中 Select 要显示的内容.因此,你基本上必须设计4种不同的图像(尽管可以为不同格式开发更多图像,如宽屏、纵向/横向模式等).
记住这一点,请记住这一点:除非你为Android中使用的每一种分辨率设计一个屏幕,否则你的图像将会伸展到适合屏幕大小.除非你的图像基本上是渐变或模糊的,否则你会在拉伸过程中得到一些不想要的失真.因此,您基本上有两个 Select : for each 屏幕大小/密度组合创建一个图像,或者创建四个9补丁图像.
最难的解决方案是为每种分辨率设计不同的闪屏.您可以按照表中this page结尾的分辨率开始(还有更多.例如:960 x 720没有在那里列出).假设您在图像中有一些小细节,例如小文本,您必须 for each 分辨率设计多个屏幕.例如,在中等屏幕上显示的480x800图像可能看起来不错,但在较小的屏幕上(密度/dpi较高),徽标可能会变得太小,或者某些文本可能会变得不可读.
另一种解决方案是设置为create a 9补丁图像.它基本上是一个围绕图像的1像素透明边框,通过在此边框的顶部和左侧区域绘制黑色像素,您可以定义图像的哪些部分将被允许拉伸.我不会深入讨论9补丁图像如何工作的细节,但简而言之,与顶部和左侧区域的标记对齐的像素是将重复拉伸图像的像素.
所以你可以在logo的两边(上边框)各放一个点,上下各放一个点(左边框),这些标记的行和列将是唯一需要拉伸的像素.
这是一张9块的图片,102x102px(最终尺寸为100x100,用于应用程序):
下面是同一张图片的200%zoom :
请注意,顶部和左侧的1px标记表示哪些行/列将展开.
以下是应用程序内100x100中的图像:
以下是扩展到460x140后的效果:
最后一件事要考虑.这些图像在您的显示器屏幕和大多数手机上可能看起来很好,但如果设备具有非常高的图像密度(dpi),则图像看起来会太小.可能仍然清晰可辨,但是在一张1920x1200分辨率的平板电脑上,图像会出现在中间的一个很小的方块上.那么解决方案是什么呢?设计4个不同的9面片emits 器图像,每个图像的密度不同.为确保不会发生收缩,应 for each 密度类别设计最低的通用分辨率.收缩在这里是不可取的,因为9-patch只考虑拉伸,所以在收缩过程中,小文本和其他元素可能会失go 易读性.
以下是每个密度类别的最小、最常见分辨率列表:
因此,以上述分辨率设计四个启动屏幕,展开图像,在画布周围放置一个1px的透明边框,并标记哪些行/列可以拉伸.请记住,这些图像将用于密度类别中的ANY台设备,因此在图像密度较小(约120 dpi)的超大平板电脑上,您的ldpi图像(240 x 320)可能会拉伸到1024x600.因此,9-patch是拉伸的最佳解决方案,只要你不想在启动屏幕上使用照片或复杂的图形(在创建设计时请记住这些限制).
同样,避免这种拉伸发生的唯一方法是 for each 分辨率设计一个屏幕(或者 for each 分辨率-密度组合设计一个屏幕,如果你想避免图像在高/低密度设备上变得太小/太大),或者告诉图像不要拉伸,让背景 colored颜色 出现在发生拉伸的任何地方(还要记住,由于 colored颜色 配置文件的原因,Android引擎渲染的特定 colored颜色 可能会与Photoshop渲染的相同特定 colored颜色 不同).
我希望这有意义.祝你好运