安卓:命名资源

5
这是一个针对Android开发者的问题,但它并不涉及编程,只影响开发者本身。
在命名各种资源(如颜色、可绘制物和字符串等)时,最常用的约定是什么?
我毫不怀疑地将我的布局命名为activity_mainlayout_secondary。然而,在命名前面提到的资源时,我总是有疑虑。我从来不知道是否应该根据它们的用途或内容来命名这些资源。例如:
- 颜色:dark_blue vs text_highlighted - 可绘制物:blue_gradient vs top_bar_background - 字符串:welcome_to_app vs first_time_prompt 是否有任何由社区创建的关于良好实践的资源?
3个回答

2
命名基本上是个人喜好。只要名称表明定义的事物的功能,该名称就是完美的。同时,您和其他使用这些定义的开发人员应该知道名称的含义以及选择哪个定义。如果在整个项目中保持名称一致,那么这相当容易。
例如,`dark_blue` 显然是蓝色,而 `text_highlighted` 是高亮文本的颜色。您应该使用的名称取决于您需要什么:如果您想按名称对颜色进行分类,请使用第一个;如果您想抽象出实际颜色,请使用第二个。对于一般布局,使用 `text_highlighted` 通常更有意义,因为实际颜色并不重要,而功能(文本突出显示与文本正常等)更重要。在这个例子中,选择 `text_highlighted` 和 `text_regular` 要比选择 `color_light_blue` 和 `color_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_first_time`、`promt_other_time` 等会有意义。如果它们可以按活动进行分类,例如可以使用作为超类别:`mainactivity_prompt_*`、`secondactivity_prompt_*`,这样您就知道它们属于哪个活动了。

1

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


1

我通常会根据内容为颜色和图片等资源命名,但对于样式或多状态可绘制对象,我会根据其功能进行命名。

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

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接