我最近开始在 android 中开发应用程序,很多教程都说我们不应该使用大写来命名资源。这是为什么?此外,不允许提供扩展名,例如 .png 和 .xml。如果我有两个文件 button.png 和 button.xml 应用程序如何区分这两个文件?
2 回答
不允许在资源中使用大写字母只是为了严格遵循一些约定
您不能在同一个资源文件夹中使用两种不同类型的同名资源。例如,假设您在 drawable-hpdi 中有两个资源文件。它们是 a.png 和 a.xml。在这里编译编译器会显示错误。但是,如果您将 a.png 放在 drawable-hdpi 中,将 a.xml 放在 drawable-mdpi 中,则不会显示任何错误,因为这两个资源将用于两种完全不同的设备类型。
我发现另一个有趣的事情是,如果您在同一个文件夹中使用 a.png 和 a.xml,那么错误将显示 a.xml 是重复的。但是如果你在同一个文件夹中使用 a.jpg 和 a.png ,那么它会显示 a.png 是重复的。为此,我们可以猜测没有文件类型优先级。编译器遵循自上而下的搜索。由于 a.png 放在 a.xml 上,因此编译器将首先找到 a.png 然后当他们找到同名的 xml 文件时,他们将显示错误。出于同样的原因,在使用 a.jpg 和 a.png 时,a.png 会显示错误。
注意这个答案完全基于我的观察。我没有找到任何关于此的书面文件。因此,如果有人用证据证明我的错误,那将不胜感激
由于资源文件的文件名部分将用于在生成的 Java 文件中创建资源 ID,因此
gen/<your-package-path>/R.java
您不能在同一目录中使用具有不同扩展名的相同资源文件名。
请参阅位图文件的资源参考中的资源文件名的使用
由于资源 ID 是 Java 变量,因此最好遵循 Java 提议的变量约定(参见Wikipedia Naming conventions for Java)以小写字母开头。