对于Android开发人员来说,这是一个问题,但它不是与编程相关的问题,因为它只影响开发人员。
在命名各种资源(如颜色,绘图和字符串等)时最常用的约定是什么?
我毫不怀疑地命名我的布局activity_main
或layout_secondary
。但是,我一直怀疑前面提到的命名资源。我不知道在使用它们或内容后是否应该命名这些资源。例如:
dark_blue
vs text_highlighted
blue_gradient
vs top_bar_background
welcome_to_app
vs first_time_prompt
是否有任何社区创建的良好实践资源?
答案 0 :(得分: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
s,那么将它们命名为prompt_first_time
,promt_other_time
,......如果它们可以按活动分类,例如可以用作超级类别:mainactivity_prompt_*
,secondactivity_prompt_*
让您知道他们属于哪里。
答案 1 :(得分:1)
Android SDK将是一个良好实践的好地方。您可以在SDK中打开任何示例代码,然后查看代码并查看变量名称。
答案 2 :(得分:1)
我通常将颜色和图片等资源命名为其内容,但我会为其功能命名一种风格或多种状态。
例如:
button_On.png; button_Off.png; button.xml
这样,如果我想在多个地方使用相同的资源,它就不会让人感到困惑。 例如,在一个样式文件中使用颜色作为文本颜色,在另一个样式文件中使用背景。