如何创建自定义主题并在Android应用程序中使用它

问题描述:

如何创建自定义主题并在代码中使用它?在菜单中如何实现主题选项并申请活动?如何创建自定义主题并在Android应用程序中使用它

有什么想法?

+0

检查我的帖子:http://*.com/questions/2613101/themes-in-android – Praveen 2010-09-21 09:43:17

+0

看看[这里](http://www.androidengineer.com/2010/06/ using-themes-in-android-applications.html)文章。可能这就是你要找的。 – orchidrudra 2012-02-10 11:07:21

This是完美的网站,它创建所有必要的文件,你需要做一个自定义的用户界面。几个星期前我亲自使用它,它对我很好。

我与本网站没有任何关系,但发现它很有趣。 希望这可以帮助你:)

在android开发人员网站上有一个不错的Styles and Themes guide。基本上你需要做的是

  1. 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所以它更容易认识到用于什么这些样式是非常有用的。

  1. 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>