【问题标题】:Use theme-defined settings OR from designer specification?使用主题定义的设置还是设计师规范?
【发布时间】:2015-09-29 09:43:55
【问题描述】:

我的设计师为我的应用程序的所有屏幕提供了 PDF 格式的设计规范。他根据 Material Design Guidelines 制定了这个规范。

在此 PDF 中指定了所有屏幕元素大小。我在 .png 文件中拥有 app 中使用的所有图标元素。所有图标都与 Material 主题中的完全相同。

所以问题是:我必须对规范中的元素大小进行硬编码,还是必须从主题中对应的大小中获取它们?我必须将设计器中的 .png 文件放到 @drawable/ 目录中还是必须使用主题定义的图标?

【问题讨论】:

    标签: android android-layout material-design


    【解决方案1】:

    我个人将所有尺寸保存在dimen.xml 文件中,并在整个应用程序中使用它们。这允许自定义,如果您想调整一个边距,您可以在一个文件中进行,它将在您的整个应用程序中正确设置。它还使您能够自己命名尺寸,这有助于使您的代码更具可读性。这是一个 dimen.xml 文件的示例:

     <resources>
        <dimen name="action_button_min_width">56dip</dimen>
        <dimen name="indeterminate_progress_size">32dp</dimen>
        <dimen name="logoSize">@android:dimen/app_icon_size</dimen>
    </resources>
    

    编辑:如果您想使用 android 给定的维度,但希望给它另一个名称,您也可以将它添加到您的 dimen.xml 中,并使用另一个名称。请参阅示例中的最后一个维度。

    如果您的设计师向您发送了一份文档供您参考,我相信他会希望整个应用程序保持一致。这就是为什么 google 发布了大量图标供您选择的原因。这样,您的应用程序将在您的应用程序的所有窗口中具有一致的外观和感觉。点击here查看图标集。

    【讨论】:

    • 在设计规范中有特定于应用程序的尺寸和材料设计准则尺寸(这些已经存在于主题 MaterialLight 中)。这个问题特别涉及第二类维度。我同意必须在 dimen.xml 中指定第一种类型。
    • 我也在 dimen.xml 中指定了第二种类型,因为我在使用主题给出的那些时遇到了一些问题(我在 xamarin 上使用了 appcompat 库)。
    • 您遇到了什么问题?
    • 我没有找到任何可以创建第一个 16dip 边距的尺寸,而我只能找到 8dip。我也喜欢给自己的命名约定,这样我就可以在我的应用程序中真正创建一些顺序和可读性。
    • 所以也许可以进行一些权衡:1)创建dimen.xml 2)在那里写所有应用程序尺寸3)必须从主题中获取的尺寸参考主题
    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2013-07-12
    相关资源
    最近更新 更多