关于Android Studio中的drawable和mipmap的混淆来自书中的旧例子

时间:2015-04-23 12:50:54

标签: java android drawable android-drawable mipmaps

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

从Android编程 - 大书呆子牧场指南一书中,有一个例子,我必须在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文件夹没有子文件夹。这让我相信可绘制文件夹不应该再用于不同分辨率的图像,因为为什么默认情况下没有文件夹,所以每个人都会犯拼写错误..
  3. 什么时候以不同的分辨率提供图标没有意义?我无法想象有人不想要尽可能高的分辨率。
  4. here我得到了一些困惑:

      

    mipmap文件夹仅用于放置您的应用图标。

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

      

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

2 个答案:

答案 0 :(得分:12)

mipmap和drawable文件夹的不同用途

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

他们说何时使用mipmap:

  

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

什么时候把东西放在你的可绘制文件夹中:

  

位图文件(.png,.9.png,.jpg,.gif)或编译的XML文件   进入以下可绘制资源子类型:

     

位图文件

     
      
  • 列表项
  •   
  • Nine-Patches(重新调整大小的位图)
  •   
  • 州列出形状   动画
  •   
  • drawables
  •   
  • 其他绘图
  •   
  • 参见Drawable Resources
  •   

附加到文件夹名称的限定符在android

中具有特殊含义

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

  • LDPI
  • HDPI
  • xdpi

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

回答上述问题:

  1. 当人们真正意味着启动器图标时,人们会犯错误使用术语图标。启动器图标应放在mipmap中并默认存在。
  2. 除了启动器图标之外,什么都不应放在mipmap
  3. Android提供了configuration qualifiers,可让您根据屏幕分辨率和屏幕方向等特定设备设置更轻松地更改应用。包含不同大小的版本很有意义,因为缩小和升级可以更精确地完成,以适应所有类型的屏幕尺寸。
  4. 希望这有助于任何人。我发现很难找到。

答案 1 :(得分:0)

https://developer.android.com/training/multiscreen/screendensities#mipmap 根据官方文件, Mipmap应该用于启动器图标。可以将其他可绘制对象添加到特定于密度的可绘制文件夹中。