对于一个Android Studio项目,我在“值”文件夹中找到了一个名为“ drawables.xml”的文件
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item>
<item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item>
<item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item>
<item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item>
<item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item>
<item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item>
</resources>
该文件的目的是什么?为什么要创建对现有可绘制对象的另一个引用,为什么不只使用“ @android:drawable / ic_menu_camera”?
开发人员可能会想到一些面向未来的方法。
开发人员可以参考Java代码android.R.drawable.ic_menu_camera
,也可以参考布局或其他内容@android:drawable/ic_menu_camera
。但是,如果以后需要开发人员从使用可绘制的平台切换到自定义平台,则所有这些引用都需要更改。
在此文件中设置的可绘制别名允许Java代码引用R.drawable.ic_menu_camera
和布局以及其他内容引用@drawable/ic_menu_camera
。现在,别名表示这些可绘制对象“重定向”到平台可绘制对象。但是,在将来的某个时候,开发人员可以添加一个自定义的ic_menu_camera
可绘制对象,删除别名...并且Java代码,布局等都不需要更改。
很少有应用程序引用平台可绘制对象,因此您通常不会看到这种技巧。但是,对于应用确实引用平台资源的情况,这种别名方法可以减少长期维护。
FWIW,我将在此博客文章中对此进行更多介绍。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句