什么是 AppCompat 主题,我可以更改它吗?
What is AppCompat theme and can I change it?
我是 Android Studio 的新手。不久前我提到“AppCompat.NoActionBar”主题非常适合我的应用程序,但很快我意识到我想改变它的主要灰色。我已经为此设置了一些颜色资源。
我的问题是如何重新定义 AppCompat 原色,它是否是一个好的解决方案(甚至可能)?现在,我只想将我的应用程序背景颜色更改为我的 colors.xml 文件中已有的颜色,如“bg_lighter_gray”。
我所知道的是我可以使用 android:background
属性 来改变每个 activity 的颜色,但是有没有办法让它们被应用程序的主题继承,所以我不会每次都要手动定义背景颜色?
在您的themes.xml
(或styles.xml
)中您可以定义您的主题:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/...</item>
</style>
然后您可以将它应用到您的应用程序中:
<manifest ... >
<application android:theme="@style/AppTheme" ... >
</application>
</manifest>
或只有一个 activity:
<manifest ... >
<application ... >
<activity android:theme="@style/AppTheme" ... >
</activity>
</application>
</manifest>
为了解决我的问题,我在 themes.xml
中添加了一项:
<style name="Theme.ThemeTest" parent="Theme.AppCompat.NoActionBar">
...
<item name="android:windowBackground">?attr/colorOnPrimary</item>
</style>
我是 Android Studio 的新手。不久前我提到“AppCompat.NoActionBar”主题非常适合我的应用程序,但很快我意识到我想改变它的主要灰色。我已经为此设置了一些颜色资源。
我的问题是如何重新定义 AppCompat 原色,它是否是一个好的解决方案(甚至可能)?现在,我只想将我的应用程序背景颜色更改为我的 colors.xml 文件中已有的颜色,如“bg_lighter_gray”。
我所知道的是我可以使用 android:background
属性 来改变每个 activity 的颜色,但是有没有办法让它们被应用程序的主题继承,所以我不会每次都要手动定义背景颜色?
在您的themes.xml
(或styles.xml
)中您可以定义您的主题:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/...</item>
</style>
然后您可以将它应用到您的应用程序中:
<manifest ... >
<application android:theme="@style/AppTheme" ... >
</application>
</manifest>
或只有一个 activity:
<manifest ... >
<application ... >
<activity android:theme="@style/AppTheme" ... >
</activity>
</application>
</manifest>
为了解决我的问题,我在 themes.xml
中添加了一项:
<style name="Theme.ThemeTest" parent="Theme.AppCompat.NoActionBar">
...
<item name="android:windowBackground">?attr/colorOnPrimary</item>
</style>