Android:使用没有主题的缺点

时间:2013-06-25 18:31:43

标签: android themes

假设我选择为所有内容选择自己的颜色,但存在不完全适合周围应用程序的风险。

我担心即使我在Eclipse中选择None作为我的主题,我仍然会得到一些默认主题:

RES /值/ styles.xml

<resources>
    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
    </style>
</resources>

RES /值-V14 / styles.xml

<resources>
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    </style>
</resources>

我的问题是:如果我的颜色在Android上或多或少看起来很和谐,我是否必须担心如果我从styles.xml删除AppBaseTheme和AppTheme,以及在{中删除android:theme {1}}?

3 个答案:

答案 0 :(得分:0)

如果您要使用自己的颜色,只需创建自己的主题并将其设置为{而不是AppTheme

答案 1 :(得分:0)

正如在style内直接使用HTML属性一样,您将无法在不同视图中重复使用样式,除非您为所需的每个视图编写相同的样式。< / p>

只需编写自己的主题并将其提供给您希望拥有自定义主题/样式的视图/ activities即可。

我所得到的:如果您在视图中直接添加样式并Activities,则无法轻松控制样式,以后实现全局样式可能会很麻烦你的应用程序在增长。

同样引用official Android theming guide

  

Android中的样式与网页设计中的级联样式表具有相似的理念 - 它们允许您将设计与内容分开。

回答你的问题:不,你不必担心。您可以删除任何您想要的内容,但不鼓励不使用styles.xml,因为上述原因。

答案 2 :(得分:0)

答案是不,你没有。每个Android设备都有一个基于已安装版本和制造商的默认主题。

例如,创建一个带有进度条的布局,根本没有样式和主题,然后在带有api 10的模拟器中运行应用程序,在另一个带有api 17的应用程序中运行应用程序。由于默认设置,您将看到设计上的差异使用的主题。如果您的应用针对api 10并在具有更高API的设备上运行,则会发生相同的情况,应用的样式将来自api 10.

如果您错过自定义样式中的某些内容,那么将根据您的应用定位的API的默认主题设计该内容。除了丑陋之外,这可能会导致糟糕的用户体验。此外,在较新版本的android中,有一些ui元素(如动作栏),它们只能根据平台样式和主题工作,这是你最大的风险(恕我直言)。

底线是,如果你不关心样式,那么让android处理所有内容,不要删除res和manifest中的样式和主题引用。如果你想自己设计一切,那么你走向成功的最佳途径就是遵循Android提供的造型系统并覆盖属性来创建自己的造型。

希望这会有所帮助......

P.S。请记住,样式不仅仅是颜色,还有很多其他东西(如尺寸,状态列表,动画,绘图,9个补丁等),在创建自己的样式时必须考虑到这些因素...