gpt4 book ai didi

java - 书中旧示例对 Android Studio 中的 drawable 和 mipmap 的混淆

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:02:19 26 4
gpt4 key购买 nike

[免责声明:首先我知道有很多关于 drawable 和 mipmap 文件夹的帖子,我阅读了其中的一些]

Android Programming - The Big Nerd Ranch Guide 一书中有一个例子,我必须在 Button 上的一些文本旁边插入一个图标。对于更高分辨率的屏幕,包含多种尺寸的图标是有意义的。在他们的解决方案中,他们将所有图像放在许多不同的 Drawable 文件夹中,这些文件夹具有不同的图像分辨率大小。

经过大量试验和错误后,我通过将图标放入 drawable 文件夹中使其在 mipmap 文件夹中工作来使其工作:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/next_button"
android:text="@string/next_button"
android:drawableRight="@drawable/arrow_right/"/>

但是,我对它的工作原理有些困惑:

  1. 人们常说只有应用程序图标应该放在 mipmap 文件夹中,是这样吗?应用程序图标是什么?其他人说只有启动器图标应该放在那里,而还有人说只有图标应该放在那里。到底是哪一个,它们是互斥的选项!
  2. 我无法自动完成 Android Studio 中的 mipmap 文件夹,这让我觉得我必须将所有内容放入我的 drawable 文件夹中,因为 Android Studio 会为我自动完成。但是,默认情况下 drawable 文件夹没有子文件夹。这让我相信 drawable 文件夹不应该再用于不同分辨率的图像,否则为什么默认没有文件夹,所以每个人都可能犯拼写错误..
  3. 在什么情况下使用不同分辨率的图标是没有意义的?我无法想象有人不想要尽可能高的分辨率..

来自 here我有些困惑:

The mipmap folders are for placing your app icons in only.

这是什么意思?从谷歌翻译我得到:

icon: a symbol or graphic representation on a screen of a program, option, or window, especially one of several for selection.

最佳答案

mipmap和drawable文件夹的不同用途

通过查看 official google documentations of the resource folder,我终于明白了 mipmap 和 drawable 文件夹之间的区别。 (res/).

他们说什么时候使用 mipmap:

Drawable files for different launcher icon densities. For more information on managing launcher icons with mipmap/ folders, see Managing Projects Overview.

以及何时将内容放入可绘制文件夹中:

Bitmap files (.png, .9.png, .jpg, .gif) or XML files that are compiledinto the following drawable resource subtypes:

Bitmap files

  • List item
  • Nine-Patches (re-sizable bitmaps)
  • State lists ShapesAnimation
  • drawables
  • Other drawables
  • See Drawable Resources

附加到文件夹名称的限定符在 android 中具有特殊含义

同样值得注意的是,默认情况下启动器图标有多个不同分辨率的文件夹,但可绘制文件夹没有。 Android 操作系统查找这些具有特殊名称的文件夹,称为限定符。例如,对于可绘制文件夹,有这些限定符和更多:

  • ldpi
  • 分辨率
  • xdpi

这些限定符附加到这些资源文件夹名称,如 drawable-ldpi、drawable-hdpi 和 drawable-xdpi,因此 android 操作系统将查看这些文件夹以找到文件夹中文件的最佳分辨率。


回答上面的问题:

  1. 人们在实际指的是启动器图标时会错误地使用术语图标。启动器图标应放置在 mipmap 中,并且默认存在。
  2. 除了启动器图标外,其他任何东西都不应放在 mipmap 中
  3. Android 提供configuration qualifiers以便根据特定设备设置(如屏幕分辨率和屏幕方向)更轻松地更改应用程序。包含不同尺寸的版本很有意义,因为缩小和放大可以更准确地完成以适应各种屏幕尺寸。

希望这对任何人都有帮助。我发现这很难找到。

关于java - 书中旧示例对 Android Studio 中的 drawable 和 mipmap 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29823997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com