当前位置: 首页 > 知识库问答 >
问题:

关于Android Studio中drawable和mipmap的混淆

宰父涵忍
2023-03-14

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

在《Android Programming-The Big Nerd Ranch Guide》一书中有一个示例,其中我必须在按钮上的一些文本旁边插入一个图标。对于更高分辨率的屏幕,包含多个大小的图标是有意义的。在他们的解决方案中,他们的所有图像都在许多不同的可绘制文件夹中,具有不同的图像分辨率大小。

<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文件夹中只应该放置app图标,是这样吗?应用图标是什么?另一些人说,只有发射图标应该放在那里,而还有一些人说,只有图标应该放在那里。是哪一个,它们是互斥的选项!
  2. 我不能自动完成到Android Studio中的mipmap文件夹中,这使我认为我必须把所有的东西都放入我的drawable文件夹中,因为在那里Android Studio为我自动完成。但是,默认情况下,可提取文件夹没有子文件夹。这让我相信,可绘制文件夹不应该再用于不同分辨率的图像,因为为什么默认为无文件夹,所以每个人都可能犯拼写错误。
  3. 什么时候在不同的分辨率下使用图标是没有意义的?我无法想象有人不想要尽可能高的分辨率…

从这里我得到了一些我的困惑:

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

图标:程序、选项或窗口屏幕上的符号或图形表示,尤指供选择的几个中的一个。

共有1个答案

鲜于雨石
2023-03-14

通过查看资源文件夹(res/)的官方google文档,我终于理解了mipmap和drawable文件夹之间的不同用途。

他们说什么时候使用mipmap:

不同发射器图标密度的可绘制文件。有关使用mipmap/文件夹管理启动器图标的更多信息,请参见管理项目概述。

  • 列表项
  • 九个修补程序(可调整大小的位图)
  • 状态列表形状动画
  • 提款
  • 其他提款
  • 请参阅可提取资源

同样值得注意的是,在启动器图标中,默认情况下有多个分辨率不同的文件夹,但对于可绘制文件夹,则没有。Android OS使用特殊名称查找这些文件夹,称为限定符。例如,对于可提取文件夹,有以下限定符和更多:

  • LDPI
  • HDPI
  • XDPI
    null

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

 类似资料:
  • 我对两个说明都有点困惑。首先,让我们放弃扫描值为0和未定义的/bsr或bitsize/lzcnt结果的特殊情况--这个区别很明显,不是我的问题的一部分。 让我们取二进制值 计数,返回到位0(即lsb)的索引或距离。 如果CPU上没有可用的BMI,如何模拟为?或者在的情况下位0是MSB?英特尔规范中的两个“代码操作”也不同,一个从左边计数或索引,另一个从右边计数或索引。 也许有人能对此有所了解,我没

  • 关于MVP和MVVM的几点混淆 在问这个问题之前,我读了一篇关于MVP和MVVM的文章。(例如:http://martinfowler.com/eaadev/uiarchs.html) null 例如,富客户端应用程序将同时使用本地数据库和远程服务。 在业务层,有两种对象! 域对象,它是从我的本地数据库中读取的。 在MVP中,只有一个“模型层”,所以我可以在这个模型层中管理和存储domian对象和

  • 我正在阅读关于线程的oracle java教程,我看到了这个示例 当有人可能使用这些方法签入他们的代码时?thread.interrupt(标志)是静态的,所以通过上面的检查,我们实际上检查是否有任何踏面被中断了?即使是这样,根据教程,当线程通过调用静态方法thread.interrupted检查中断时,中断状态将被清除。或任何通过抛出InterruptedException退出的方法在这样做时将

  • 我正在测试

  • 我很难让mipmaps正常工作。我使用的是OpenGL 1.1,我没有glu,所以我使用以下纹理初始化代码: 变量: 是保存纹理mipmap像素数组列表的数组。mipmap处理正确(我单独测试了它们)是将原始图像缩小为1x1像素纹理的mipmaps数(原始纹理为256x256-因此在代码中此时为8)<代码>宽度和高度是原始纹理(256x256)的尺寸。 结果是它甚至没有使用纹理。一切都呈现出平坦的

  • 我知道System类的System.In是InputStream的一个具体子类的实例,因为InputStream的read()方法是抽象的,System.In必须重写这个方法。根据关于InputStream的read()方法的文档: 从输入流中读取下一个字节的数据。值字节以0到255范围内的int形式返回。如果由于已到达流的结尾而没有可用的字节,则返回值-1。此方法将阻塞,直到输入数据可用、检测到