2

最后两个问题没有回答,我希望“第三个的魅力”有效:)

我希望 HDPI 应用程序使用文件夹“drawable-xhdpi”中的那些可绘制对象和“drawable-mdpi”中的那些 LDPI 设备。所以我不必复制相同的图像。这可能吗?

4

4 回答 4

8

是的,Android 会缩放可绘制对象,选择会产生最佳结果的可绘制对象。但并不是所有的缩放组合都能很好地工作。缩小到 MDPI 会产生明显较差的结果。XHDPI 到 HDPI 通常会产生非常好的结果。但鉴于当今绝大多数设备都是 HDPI,因此拥有 HDPI 资源可能是值得的。HDPI 到 XHDPI 的缩放并不可怕。一些 1280x720 设备使用 XHDPI 资源。这些通常看起来没问题。Google TV 也使用 XHDPI。在大屏幕上,可以看到缩放错误。

出于所有实际目的,LDPI 设备现在不存在。

诚然,生成规模化资源是一个巨大的 PITA。但是,在我看来,你真的需要做 MDPI 和 HDPI。一旦你解决了令人不快的工作流程,就不需要做很多额外的工作来生成 XHDPI。对于它的价值,如果您的作品是矢量格式,那么绝大多数资源都不需要针对特定​​分辨率进行调整。例如,似乎没有任何迫切需要对正方形对象的边缘进行像素对齐。通常,只有复杂图标和艺术品中的内部特征才能受益于一定程度的像素推动。

很明显,XHDPI 将会越来越普遍。相信我,你不会想在事后回过头来用 XHDPI 重新制作所有作品。我的建议:如果你打算从现在开始一年后仍然发布你的应用程序,那就把它收拾起来,然后随心所欲地去做,虽然它仍然相对容易。

于 2012-12-22T16:54:32.530 回答
5

根据我的经验,如果您仅将图像放置在一些可绘制文件夹中,但不是全部,操作系统将为您正在使用的设备选择“最佳”图像,即使它并不完全适合。例如,如果您将名为 arrow.png 的图像仅放在 drawable-hdpi 文件夹中,则所有设备都会将该图像用于可绘制箭头,并适当地缩小或放大它,拉伸或缩小图像。

话虽如此,您应该能够通过简单地将图像放在正确的文件夹中并允许设备选择正确的文件夹来完成您想要的。例如,如果您尝试仅使用一张图片来完成任务,arrow.png:

drawable-xhdpi/ -> 箭头.png

drawable-hdpi/ -> 空的

drawable-mdpi/ -> 箭头.png

drawable-ldpi/ -> 空的

可绘制/-> 空的

如果您在 ldpi 设备上使用该应用程序,该设备将使用您想要的 mdpi 图像,因为它最接近正确的分辨率。在 hdpi 手机上,它将使用 xhdpi 图像,因为它又是最接近正确分辨率的图像。

于 2012-12-22T16:11:57.800 回答
3

是的。Android 会自动缩小/放大它无法找到的资源。如果您只将资源放在 XHDPI 文件夹中,它就可以工作,Android 会负责调整它们的大小以在所有其他密度下工作。

于 2012-12-22T16:11:06.653 回答
-1

我们应该将此代码添加到 MainActivity 类中,并将图像复制到 dhpi 文件夹,其中 ic_launcher、ic_launcher2、ic_launcher3 和 ic_1 是图像名称,我们可以更改大小:宽度和高度

int array_image[]={R.drawable.ic_launcher,
    R.drawable.ic_launcher2,
    R.drawable.ic_launcher3,
    R.drawable.ic_1

}

于 2014-08-14T03:15:59.073 回答