30

我正在创建一个启动屏幕,它将在我的 Android 应用程序加载时显示。我想以正确的大小创建它,这样 Android 就不会自动放大或缩小它以适应屏幕。(这是一张位图,一张油画的照片,所以我不能把它变成九块。)

但我至少关心三种重要的屏幕尺寸:320x480、480x854(Droid)和 480x800(Nexus One)。

我已经阅读了有关支持多种屏幕尺寸的文档,但我仍然没有看到我应该如何为 Droid/Nexus 配置不同的启动屏幕(就 Android 而言,它们都是“hdpi”资源) ,而且我不知道在任何情况下我的启动画面应该有多大。(Droid 中的操作系统标题栏/菜单有多高?N1?)

我应该制作多大尺寸的这些图像,以及如何告诉 Android 在给定屏幕上使用正确的尺寸?

4

3 回答 3

32

您无需担心屏幕的绝对大小或状态栏或任何东西——这就是我们有九个补丁图像的原因。

我所做的就是让每个分辨率看起来都不错的图像——本质上是一个透明背景上的徽标,底部有一些文字。

然后我在顶部和侧边切掉了相当多的空间,在图像周围做了一个九块边框,在左、右和上边缘附近有一个像素。这允许图像在侧面和顶部均匀扩展以填满屏幕。


编辑,回应丹下面的评论:

是的,有一种方法可以确定哪些图形应该用于哪些明确的屏幕尺寸,但它已被弃用

就像有drawable-hdpi-ldpi资源限定符一样,它也可以使用drawable-HHHxWWW——更大的像素尺寸首先出现。

例如drawable-800x480drawable-854x480

于 2010-04-01T17:29:05.757 回答
6

好的,首先:您可以通过android.os.Build找到设备型号并使用它来确定要显示的图像。

其次,我个人不会打扰。布局应该在倾斜中完成,因为我相信每个 android 屏幕都是 320x480 dip,并且根据我的经验,android 可以很好地保持设备之间的纵横比。就我所遇到的而言,在 N1 和机器人上,一个 480x800 的飞溅设置来填充父级非常可靠。

于 2010-04-01T17:35:29.647 回答
1

我实现的另一个解决方案是使用比例类型“centerCrop”放置一个填充屏幕(宽度和高度均为“MATCH_PARENT”)的 ImageView。这样,图像不会被拉伸,而是沿边缘裁剪。尽量不要把重要的内容(标志和类似的东西)放在靠近边缘的地方。如果是照片,我希望边缘是“消耗品”,可以裁剪掉。

于 2013-01-21T14:49:59.917 回答