Android启动器图标-我的默认/mdpi资源是否是冗余的?
我是Android开发的新手(使用Mono开发Android),我读过,还有一些其他的,但我不确定如何为我的应用程序提供所有必要的图标文件Android启动器图标-我的默认/mdpi资源是否是冗余的?,android,resources,icons,launch,mdpi,Android,Resources,Icons,Launch,Mdpi,我是Android开发的新手(使用Mono开发Android),我读过,还有一些其他的,但我不确定如何为我的应用程序提供所有必要的图标文件 从模板项目中,IDE为我创建了一个带有48x48 px Icon.png文件的drawable/文件夹 由于我需要提供其他资源,我抓取了一个PNG文件作为我的应用程序图标,并使用了(在文档中提到的),它为我生成了以下文件: 可绘制hdpi/ic_launcher.png(72x72像素) 可绘图mdpi/ic_launcher.png(48x48 px) d
drawable/
文件夹可绘制hdpi/ic_launcher.png
(72x72像素)
可绘图mdpi/ic_launcher.png
(48x48 px)
drawinable xhdpi/ic_launcher.png
(96x96 px)
可绘图xxhdpi/ic_launcher.png
(144x144 px)
(我不知道为什么,但是没有生成ldpi
版本,所以我将自己的大小调整为36x36图标。)
现在我迷路了
1。我是否应该在drawable mdpi/
和drawable/
中维护48x48 px副本?
如果我只在可绘制mdpi/
中保留图标,应用程序可能会在旧设备/Android版本上崩溃(因为缺少默认资源)?
1.如果我只在drawable/
中保留图标(备用),那么使用drawable mdpi/
有什么意义
由于我不知道该做什么,我将我的项目可绘制文件夹保留如下:
drawable/ic_launcher.png
(48x48像素)
可绘制hdpi/ic_launcher.png
(72x72像素)
可牵引ldpi/ic_launcher.png
(36x36 px)
可绘图mdpi/ic_launcher.png
(48x48 px)
drawinable xhdpi/ic_launcher.png
(96x96 px)
可绘图xxhdpi/ic_launcher.png
(144x144 px)
但我还是不清楚
编辑:
如果我提供了所有可能的“替代”资源,那么默认的(
drawable/
)资源文件夹将变得多余,因此我可以删除它。但是,我不愿意不提供默认资源,因为这样做似乎更合理:首先提供“默认”资源,然后根据需要提供“替代”资源。这段引文有点长,但您应该仔细阅读以下内容:
在运行时,对于任何给定的资源,系统通过以下步骤确保在当前屏幕上显示最佳效果:
1.系统使用适当的替代资源
根据当前屏幕的大小和密度,系统使用应用程序中提供的任何特定于大小和密度的资源。例如,如果设备具有高密度屏幕,且应用程序请求可绘制资源,则系统将查找与设备配置最匹配的可绘制资源目录。根据其他可用的替代资源,具有hdpi限定符(例如drawable hdpi/)的资源目录可能是最佳匹配,因此系统使用此目录中的drawable资源
2.如果没有匹配的资源可用,系统将使用默认资源,并根据需要将其放大或缩小以匹配当前资源
屏幕大小和密度“默认”资源是
未使用配置限定符标记。例如,资源
在drawable/中,是默认的可提取资源。系统假设
默认资源是为基线屏幕大小和
密度,这是一个正常的屏幕大小和中等密度。像这样的
系统会将默认密度资源向上扩展以实现高密度
适用于低密度筛网的筛网和下筛网
但是,当系统寻找特定密度的资源时
并且在密度特定目录中找不到它,它不会
始终使用默认资源。系统可以使用以下选项之一:
其他密度特定的资源,以便提供更好的
缩放时的结果。例如,在寻找低密度
如果资源不可用,系统倾向于缩小
高密度版本的资源,因为系统可以轻松
以0.5倍的比例将高密度资源缩小为低密度资源,
与通过
系数为0.75
因此,无论应用程序运行在什么设备上,系统都将寻找尺寸最佳的可绘制设备。如果系统正在查找48x48的启动器图标,它将首先在drawable mdpi/中查找,因为文档建议您在该文件夹中放置48x48图标。既然您已经提供了,那么应用程序就没有理由必须在drawable/文件夹中查找默认图像。即使这样做了,也不会有什么好处,因为您已经提供了相同大小的图标
如果你只提供了一种尺寸的特定drawable,你的应用程序应该不会在任何设备上崩溃,即使你提供的尺寸是非常错误的。在这种情况下,映像看起来很糟糕,因为系统将加载您提供的单个映像。因此,如果您在drawable-*dpi文件夹中有图像,则不需要在drawable/中创建副本
TL;博士
不,如果您在drawable mdpi/中已经有一个ICU launcher.png的48x48副本,那么您不需要将它放在drawable文件夹中,因为系统将首先选择该副本。因此,1)我是否可以将位图(png
,jpg
,…)所有drawable-*dpi
文件夹中的资源,默认drawable
文件夹除外?2) 如果我没有在默认的drawable
one中提供资源,是否可以保证应用程序不会崩溃(无论使用何种设备)?(假设我提供了至少一种替代资源,例如:可绘制的xhdpi
)。我害怕不提供“默认”选项,因为: