我们是否需要将具有不同dpi的所有图像添加到Android应用程序中

Hus*_*Rad 5 android multiscreen android-actionbar

正如你所知道的Android应用程序有不同的DPI,并在Android应用中,我们可以添加drawable在不同势与不同势的DPI小号ldpi,mdpi,hdpixhdpi文件夹.

问题是,当我们想要支持所有DPI时,我们应该添加具有所有不同尺寸的图标或仅添加最大尺寸的图标?

我的意思是假设我有一个带有图标的动作栏项目.我是否应该使用24x24(在drawable-mdpi文件夹中),36x36(在drawble-hdpi文件夹中),48x48(在drawable-xhdpi文件夹中)添加此操作栏项的图标,.....

或者我只需要在xxxhdpi文件夹中添加一个大小为96x96 的图标,android会为其他DPI设置质量好的图标吗?

Dor*_*ori 4

TLDR 请参阅下面的粗体部分

\n\n

后来为 Android 添加了不同密度的文件夹,这意味着......

\n\n

如果您想偷懒,只添加一项资产,那么最好的选择可能是HDPI资产(如果您的最小应用程序目标 < 8 )XHDPI(如果其>= 8)。这是因为系统会上下缩放资源,但您仍然希望以尽可能最高分辨率开始。

\n\n

如果您想完全控制资产的扩展方式,那么您可以通过各种方式为所有/部分密度提供您自己的资产。在实践中,我通常提供如上所述的 HDPI / XHDPI,并提供徽标 / AB 图标 / 应用程序图标等的所有资源桶。我通常发现自动缩放非常好并且适用于大多数情况,但有时必须提供如果它是一个小资产/包含小文本等,则需要额外的 LD/MD 资产。另外,如果我复制 XXXHDPI 之类的所有资产,我会得到相当好的 apk 膨胀。

\n\n

您还可以使用内置工具的 IDE 一次为多种密度添加单个资产。在 Android Studio 0.6 中,这是“文件”->“新建”->“图像资源”,然后会出现一个向导。

\n\n

我从未注意到或听说过允许 Android 自动扩展资产对性能有任何影响 - 大概这是在硬件中完成的。

\n\n

当自动缩小到 LDPI 时,它可能看起来不太好,所以您可以选择为所有其他密度提供您自己的缩放资产。

\n\n

取自以下链接

\n\n
    \n
  • ldpi:低密度屏幕;大约120dpi。
  • \n
  • mdpi:中密度(在传统 HVGA 上)屏幕;大约160dpi。
  • \n
  • hdpi:高密度屏幕;大约240dpi。
  • \n
  • xhdpi:超高密度屏幕;大约 320dpi。添加到 API 级别 8
  • \n
  • nodpi:这可用于您不希望缩放以匹配设备密度的位图资源。
  • \n
  • tvdpi:屏幕介于 mdpi 和 hdpi 之间;大约213dpi。这不被视为“主要”密度组。它主要用于电视,大多数应用程序不需要它\xe2\x80\x94,提供 mdpi 和 hdpi 资源对于大多数应用程序来说足够了,系统将根据需要缩放它们。此限定符是在API 级别 13 中引入的。
  • \n
\n\n

从此开发链接获取更多信息的列表。

\n\n

这是我在职业生涯中在许多应用程序上使用的方法,包括 Google 和 BBC 的应用程序,并且没有出现任何问题。

\n