Android:命名资源

时间:2012-10-01 12:07:24

标签: android resources naming-conventions

对于Android开发人员来说,这是一个问题,但它不是与编程相关的问题,因为它只影响开发人员。

在命名各种资源(如颜色,绘图和字符串等)时最常用的约定是什么?

我毫不怀疑地命名我的布局activity_mainlayout_secondary。但是,我一直怀疑前面提到的命名资源。我不知道在使用它们或内容后是否应该命名这些资源。例如:

  • 颜色:dark_blue vs text_highlighted
  • Drawable:blue_gradient vs top_bar_background
  • 字符串:welcome_to_app vs first_time_prompt

是否有任何社区创建的良好实践资源?

3 个答案:

答案 0 :(得分: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)例如:

  • btn_用于按钮图形
  • 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 :(得分:1)

Android SDK将是一个良好实践的好地方。您可以在SDK中打开任何示例代码,然后查看代码并查看变量名称。

答案 2 :(得分:1)

我通常将颜色和图片等资源命名为其内容,但我会为其功能命名一种风格或多种状态。

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

这样,如果我想在多个地方使用相同的资源,它就不会让人感到困惑。 例如,在一个样式文件中使用颜色作为文本颜色,在另一个样式文件中使用背景。