2012-10-01 167 views
4

这是一个针对Android开发者的问题,但它不是一个与编程相关的问题,因为它只影响开发人员。Android:命名资源

什么约定是最常用的命名各种资源,如颜色,drawables和字符串等?

我毫不怀疑命名我的布局activity_mainlayout_secondary。但是,我一直怀疑以前提到的命名资源。我永远不知道我是否应该在使用这些资源或内容后对其进行命名。例如:

  • 颜色:dark_blue VS text_highlighted
  • 绘制对象:blue_gradient VS top_bar_background
  • 字符串:welcome_to_app VS first_time_prompt

是否有好的做法任何社区创建的资源?

回答

2

命名是非常个人的喜好。只要名称表明所定义事物的功能是什么,名称就是完美的。此外,您和任何其他使用这些定义的开发人员应该知道名称的含义以及要选择的定义。如果你在整个项目中与名称保持一致,那很容易。

例如dark_blue显然是蓝色,而text_highlighted是高亮文本的颜色。你应该使用的名字取决于你需要的东西:如果你想按照他们的名字来分类颜色,首先,如果你喜欢从实际颜色抽象出第二个。对于使用text_highlighted的常规布局,通常会更有意义,因为实际颜色无关紧要,而功能(文本高亮显示和文本常规等)更为重要。在这个例子中,在text_highlightedtext_regular之间选择比在color_light_bluecolor_dark_blue之间选择要明显得多,尽管它们可以指代相同的颜色。该名称可以帮助防止错误。

Android使用名称前缀[android.R.drawable] (http://developer.android.com/reference/android/R.drawable。HTML),例如:

  • ​​的按钮图形
  • ic_为图标的图形
    • ic_menu_菜单图标
    • ic_dialog_的对话图标
  • stat_的状态图标

模式当然不是完美的,但使用以最一般分类开头的前缀的优点是可以使用代码完成来逐步搜索特定项目。所以color_blue_dark可能比dark_blue_color更好,至少如果你认为颜色分类比黑暗/浅色分类更重要。这同样适用于first_time_prompt。如果您有很多prompt s,将它们命名为prompt_first_timepromt_other_time,...如果它们可以按照可用作超级类别的活动进行分类:mainactivity_prompt_*secondactivity_prompt_*因此您知道它们属于哪个区域。

1

Android SDK将是良好实践的良好开端。您可以在SDK中打开任何示例代码并浏览代码并查看变量名称。

+0

好点。太糟糕了,他们似乎使用混合惯例。 – Pijusn

1

我通常会为其内容命名资产,如颜色和图片,但是我会为其功能命名一个样式或多个状态drawable。

例如: button_On.png; button_Off.png; button.xml

,如果我想使用在多个地方相同的资源它不会混淆的方式。 例如,在一个样式文件中使用颜色作为文本颜色,在另一个样式文件中使用背景。

+0

你不能用大写字母命名资源文件。 – Shrikant

+0

我编辑了这个例子 –