私のAndroidアプリケーションでは異なるテーマをサポートしたいと思います。 テーマは2色しか異なるはずです。したがって、これらの色は、すべてのテーマのためにあります。テーマを変更するときのみ色を変更してください
- 原色
- 二色
私が欲しい、また、ボタンのスタイルらのような子供を持っている一つの大きなデフォルトのテーマがあると、 like(styles.xml):
<style name="DefaultTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="homeAsUpIndicator">@drawable/my_stackoverflow_arrow</item>
[...]
</style>
<style name="DefaultTheme.NoActionBar">
<!-- hide action bar and title -->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="DefaultTheme.Button">
<item name="android:textAllCaps">true</item>
<item name="android:textStyle">bold</item>
[...]
</style>
しかし、今では色を変えてテーマを変更したいと思っています。だから今
<resources>
<attr name="ThemeColorPrimary" format="reference" />
<attr name="ThemeColorSecondary" format="reference" />
</resources>
を、私はこのように上から私のstyles.xml
でこの属性を使用することができます:したがって、私はattrs.xml
ファイル内のリソースを作成した
<style name="DefaultTheme.Button">
<item name="android:textAllCaps">true</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">?attr/ThemeColorPrimary</item>
[...]
</style>
しかし、どのように私は私の色のテーマが作成するのですか?私はこのような何かをする必要があることを知っています:
<item name="ThemeColorPrimary">@color/ThemeBluePrimary</item>
しかしどこですか?どのテーマが継承されていますか?私は今のようなものがある場合:指定されたリソースが不足していることになるので
<activity
android:name="StackOverflowActivity"
android:screenOrientation="portrait"
android:theme="@style/DefaultTheme.NoActionBar" />
:
<style name="BlueTheme" parent="DefaultTheme">
<item name="ThemeColorPrimary">@color/ThemeBluePrimary</item>
<item name="ThemeColorSecondary">@color/ThemeBlueSecondary</item>
</style>
<style name="GreyTheme" parent="DefaultTheme">
<item name="ThemeColorPrimary">@color/ThemeGreyPrimary</item>
<item name="ThemeColorSecondary">@color/ThemeGreySecondary</item>
</style>
<style name="BlackTheme" parent="DefaultTheme">
<item name="ThemeColorPrimary">@color/ThemeBlackPrimary</item>
<item name="ThemeColorSecondary">@color/ThemeBlackSecondary</item>
</style>
を私はこのようなAndroidManifest.xml
でテーマを指定することはできません。そうでなければ私はまた、これにすることはできません。
<activity
android:name="StackOverflowActivity"
android:screenOrientation="portrait"
android:theme="@style/BlueTheme.NoActionBar" />
BlueThemeは「NoActionBar」と呼ばれている子を持っていないので。
私はこれが混乱していることを知っています。私はかなり混乱しています。 どうすればこの問題を解決できますか? ありがとうございます。