5

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

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

我毫不怀疑命名我的布局activity_mainlayout_secondary. 但是,在之前提到的资源命名时,我一直有疑问。我永远不知道我是否应该根据它们的使用或内容来命名这些资源。例如:

  • 颜色:dark_blue对比text_highlighted
  • 可绘制:blue_gradientvstop_bar_background
  • 字符串:welcome_to_appvsfirst_time_prompt

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

4

3 回答 3

2

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

例如dark_blue,显然是蓝色,而text_highlighted突出显示文本的颜色。您应该使用的名称取决于您的需要:如果您想按名称对颜色进行分类,请使用第一个,如果您想从实际颜色中抽象出来,请使用第二个。对于一般布局,使用text_highlighted通常更有意义,因为实际颜色无关紧要,功能(文本突出显示与文本常规等)更重要。在这个例子中,在and 之间进行选择比在text_highlightedandtext_regular之间进行选择要明显得多color_light_bluecolor_dark_blue尽管它们可以指代相同的颜色。该名称可以帮助防止错误。

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

  • btn_用于按钮图形
  • ic_用于图标图形
    • ic_menu_对于菜单图标
    • ic_dialog_用于对话框图标
  • stat_用于状态图标

架构当然不是完美的,但使用以最通用分类开头的前缀的优点是您可以使用代码完成来逐步搜索特定项目。所以color_blue_dark可能比dark_blue_color,至少如果您认为颜色分类比暗/亮分类更重要的话。这同样适用于first_time_prompt。如果你有很多prompts 命名它们是有意义的prompt_first_time, promt_other_time, ... 如果它们可以按例如可以用作超类别的活动进行分类: mainactivity_prompt_*secondactivity_prompt_*那么你就知道它们属于哪里。

于 2012-10-01T12:26:02.487 回答
1

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

于 2012-10-01T12:11:10.727 回答
1

我通常为它们的内容命名颜色和图片之类的资产,但我会为其功能命名一个样式或多个状态可绘制。

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

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

于 2012-10-01T12:17:35.093 回答