有几个问题捆绑在一起,但我将详细解释所有问题。
如您所知,有多种 Android 设备具有不同的屏幕尺寸。这就是为什么根据它们的密度将它们分成几类的原因。必须阅读this,如果您还没有阅读的话。
这是完整分类,
因此,想法是将所有这些目录分开,而不仅仅是一个“可绘制”文件夹。每当您想在您的应用中放置任何图像或图标时,您都需要将它们的不同大小正确放置在各自的目录中。
两个单独的文件夹,我想知道是否必须将
android 到单独文件夹中的图标?
您不必指示 Android 执行任何操作。 Android 会智能地从“drawable-**dpi”中自动选择合适的图像尺寸。
我的意思是我必须首先弄清楚什么样的 dpi
设备是并设置适当的图标或者我可以只声明一个
可绘制资源和android会帮我解决吗?
您无法计算出所有设备的 dpi,因为您的应用将在具有不同密度的多个设备上运行。您只需将不同大小的图标放在各自的可绘制目录中即可。
您永远不应将单个图像或图标放在“可绘制”目录中,因为它会大大降低您的应用程序的速度,因为 Android 需要在运行时动态调整您的图像大小。
如果我可以设置一个图标名称和可绘制文件和 android
系统会知道不同的屏幕使用什么,那么你能
给我解释一下这是怎么做到的?
只要参考上一个问题,它已经回答了。
那么如何在drawable文件夹和android中设置一个图标图像
知道不同设备的 drawable-hdpi 可以访问什么吗?
如前所述,Android 显然知道应用当前正在运行哪个设备,从而知道其屏幕密度。现在,如果您已将它们正确放入各自的可绘制文件夹中,Android 只需根据当前屏幕密度选择正确的图像就很容易了。
更新
只是为了回答你的新问题。
您从一个“可绘制”文件夹开始。但是您需要自己创建其他目录,并且它们需要具有正确的名称,例如 drawable-mdpi、drawable-hdpi、drawable-xhdpi 等。
您不能有任何其他名称,例如 drawable-K 或 drawable-l,甚至名称中的拼写错误也不能。 Android 只是扫描以查看您的应用中是否存在具有这些名称的文件夹,如果存在,那么它会选择正确的一个。
假设您使用的是 Nexus 5,它是一个 xxhdpi 设备,
i) 现在,Android 将在您的应用中查找 drawable-xhdpi 目录以获取特定图像。
ii) 如果它存在,那么它只会拾取它。如果没有,那么它会寻找最近的,如 drawable-xxhdpi 或 drawable-hdpi 并稍微调整图像大小以适应。
iii) 如果什么都不存在,那么它将从原始的“drawable”文件夹中选择图像。
希望它能消除你所有的疑虑。