我有一个应用程序,我没有明确定义任何颜色。我的手机上的应用程序看起来与办公室周围的其他手机不同(我手机上应用程序顶部的标题栏是白色字母的蓝色,而其他手机上的白色字母是灰色的) 。我怎么做他们一样的?它只是在我的应用程序中明确设置颜色这么简单吗?
答案 0 :(得分:0)
您需要将一个可用主题应用于您的应用程序。您可以AndroidManifest.xml
执行此操作,只需使用android:theme
属性:
android:theme="@android:style/Theme.Holo"
如果您想要黑暗主题,或android:theme="@android:style/Theme.Holo.Light"
如果您想要浅色主题。
如果您使用此应用程序放在<activity>
个标签中,则只会对相应的活动进行样式设置,如果您将其放在<application>
标记中,则样式将应用于整个应用程序。
当然,您可以在styles.xml
中定义自己的风格:
<style name="AppTheme" parent="android:Theme.Light">
<item name="android:windowBackground">@drawable/bg_window</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
以下是AndroidManifest.xml
的例子:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".Activity1"
android:theme="@style/AppTheme2"
/>
<activity
android:name=".Activity2"
/>
在此示例中,AppTheme2
仅适用于Activity1
,而AppTheme
将应用于所有其他活动。
答案 1 :(得分:0)
您未设计的所有按钮,文本视图和其他UI元素将根据所选主题更改其方面。如果您选择默认主题,则所有GUI小部件将根据设备制造商,Android版本等而有所不同。
您可以指定一个具体的主题,例如Holo,但问题是它不适用于3.0之前的Android版本。您可以保留旧版本的默认主题,否则您可以使用此网站自行生成所有Holo风格的GUI元素:
答案 2 :(得分:0)
我手机上应用顶部的标题栏为蓝色和白色 字母和其他手机上的字母是灰色的白色字母
这是一些OEM的自定义框架的问题。它们覆盖默认的android样式。我假设带有蓝色标题栏的设备是带有TouchWiz的三星设备,对吗?
为了拥有一致的标题栏,您必须声明自己的主题:
<style name="AppTheme" parent="android:Theme.Light">
<item name="android:windowBackground">@drawable/title_bar</item>
<item name="android:windowTitleStyle">@style/WindowTitle</item>
</style>
<style name="WindowTitle">
<item name="android:singleLine">true</item>
<item name="android:textAppearance">@style/TextAppearance.WindowTitle</item>
<item name="android:shadowColor">#BB000000</item>
<item name="android:shadowRadius">2.75</item>
</style>
原始title_bar 9补丁。
这是你问题的答案。但是在我看来你不应该使用标题栏,而是使用ActionBar。您可以使用ActionBarSherlock来实现向后兼容性。