如何创建自定义主题并在Android应用程序中使用它
答
在android开发人员网站上有一个不错的Styles and Themes guide。基本上你需要做的是
- Define a style(或继承一个内置的)。要定义风格
保存一个XML文件中的
res/values/
目录中的项目。 XML文件的名称 是任意的,但它必须使用.xml
分机号 并保存在res/values/
文件夹中。XML文件的根节点必须是
<resources>
。对于要创建的每种样式,请使用一个名称来为文件 添加一个元素,该元素具有唯一标识样式的名称(该属性为 必需)。
即
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.MyGreenTheme" parent="Theme.Light">
<item name="android:windowBackground">#11aa22</item>
</style>
</resources>
它命名的资源文件themes.xml
所以它更容易认识到用于什么这些样式是非常有用的。
-
Apply定义的样式到要 程式化的活性或视图。您可以
- 设置活动/应用主题清单文件:
<activity android:theme="@style/Theme.MyGreenTheme"/>
- 或动态设置 - 使用Activity类的相应的setter - setTheme()。
答
您可以根据通过添加“父”默认样式添加你的风格。
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="color">#fff</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorHitam</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="android:textColorSecondary">#fff</item>
<item name="android:textAllCaps">false</item>
<item name="android:actionOverflowButtonStyle">@style/OverFlow</item>
</style>
<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/ic_login_2</item>
</style>
<style name="MasukDaftar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorHitam</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="android:textColorSecondary">@color/colorHitam</item>
<item name="android:textAllCaps">false</item>
</style>
<style name="SplassScreenCustom" parent="Theme.AppCompat.NoActionBar"/>
<style name="AppTheme.Dark.Dialog" parent="Theme.AppCompat.Dialog">
<item name="colorAccent">#fff</item>
<item name="android:textColorPrimary">@color/colorHitam</item>
<item name="colorPrimaryDark">@color/colorHitam</item>
<item name="android:background">@color/colorPrimary</item>
<item name="android:textColorSecondary">@color/colorHitam</item>
<item name="android:textAllCaps">false</item>
</style>
<style name="TabLayoutTextStyle">
<item name="android:textStyle">bold</item>
<item name="android:textSize">16sp</item>
<item name="android:textAllCaps">false</item>
<item name="android:textColor">#fff</item>
</style>
<style name="Toolbar" parent="Theme.AppCompat">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">@color/colorPrimary</item>
<item name="android:textColorPrimary">@color/colorHitam</item>
</style>
检查我的帖子:http://*.com/questions/2613101/themes-in-android – Praveen 2010-09-21 09:43:17
看看[这里](http://www.androidengineer.com/2010/06/ using-themes-in-android-applications.html)文章。可能这就是你要找的。 – orchidrudra 2012-02-10 11:07:21