Android                
            テーマ、スタイル、属性
        
        
            
    サーチ…
カスタムテーマをグローバルに使用する
themes.xml:
<style name="AppTheme" parent="Theme.AppCompat">
    <!-- Theme attributes here -->
</style>
 AndroidManifest.xmlの場合:
<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    
    <!-- Activity declarations here -->
</application>
        主な、暗い、アクセントの色を定義する
テーマのカラーパレットをカスタマイズできます。
フレームワーク APIの使用
<style name="AppTheme" parent="Theme.Material">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <item name="android:colorAccent">@color/accent</item>
</style>
  Appcompatサポートライブラリ (およびAppCompatActivity )を使用すると、 
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
</style>
 アクティビティごとにカスタムテーマを使用する
themes.xml:
<style name="MyActivityTheme" parent="Theme.AppCompat">
    <!-- Theme attributes here -->
</style>
 AndroidManifest.xmlの場合:
<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat">
    
    <activity
        android:name=".MyActivity"
        android:theme="@style/MyActivityTheme" />
</application>
        オーバーカラーカラー(API 21+)
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:colorEdgeEffect">@color/my_color</item>
</style>
        リップルカラー(API 21+)
ユーザーがクリック可能なビューを押すとリップルアニメーションが表示されます。
あなたのビューで?android:colorControlHighlight割り当てるアプリケーションで使用されているのと同じリップルカラーを使用することができます。テーマのandroid:colorControlHighlight属性を変更することで、この色をカスタマイズできます: 
このエフェクトの色は変更できます:
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:colorControlHighlight">@color/my_color</item>
</style>
 または、マテリアルテーマを使用している場合:
<style name="AppTheme" parent="android:Theme.Material.Light">
    <item name="android:colorControlHighlight">@color/your_custom_color</item>
</style>
 ライトステータスバー(API 23+)
この属性は、ステータスバーアイコンの背景(画面の上部)を白に変更することができます。
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowLightStatusBar">true</item>
</style>
        半透明ナビゲーションとステータスバー(API 19+)
ナビゲーションバー(画面の下部にある)は透明にすることができます。ここでそれを達成する方法があります。
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowTranslucentNavigation">true</item>
</style>
 この属性をスタイルに適用すると、ステータスバー(画面の一番上)を透明にすることができます:
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowTranslucentStatus">true</item>
</style>
        ナビゲーションバーの色(API 21+)
この属性はナビゲーションバー(Back、Home Recentボタンを含むもの)を変更するために使用されます。通常は黒ですが、色は変更できます。
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:navigationBarColor">@color/my_color</item>
</style>
 テーマの継承
テーマを定義するときには、通常、システムによって提供されるテーマを使用して、変更が自分のアプリケーションに合わせて外観を変更します。たとえば、これはTheme.AppCompatテーマが継承される方法です。 
<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
 このテーマは、明示的に変更されたものを除いて、標準のTheme.AppCompatテーマのすべてのプロパティを持つようになりました。 
継承時にはショートカットもあり、通常は自分のテーマから継承するときに使用されます。
<style name="AppTheme.Red">
    <item name="colorAccent">@color/red</item>
</style>
 それは既にAppTheme.持っているからAppTheme.その名前の始めに、 parentテーマを定義する必要はなく、自動的に継承されます。これは、アプリの一部(たとえば、単一のアクティビティ)に特定のスタイルを作成する必要がある場合に便利です。 
1つのアプリケーションの複数のテーマ
Androidアプリケーションで複数のテーマを使用すると、次のようにすべてのテーマにカスタム色を追加できます。
まず、次のようにstyle.xmlテーマを追加するstyle.xmlがあります。 
<style name="OneTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<!--  -->
<style name="TwoTheme" parent="Theme.AppCompat.Light.DarkActionBar" >
</style>
......
 あなたの上にはOneThemeとTwoThemeがあります。
 AndroidManifest.xmlに移動して、 android:theme="@style/OneTheme"をアプリケーションタグに追加すると、 OneThemeがデフォルトのテーマになります: 
<application
        android:theme="@style/OneTheme"
        ...>
  attrs.xmlという名前の新しいxmlファイルを作成し、次のコードを追加します。 
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="custom_red" format="color" />
    <attr name="custom_blue" format="color" />
    <attr name="custom_green" format="color" />
</resources>
<!-- add all colors you need (just color's name) -->
  style.xml戻って、各テーマの値とともにこれらの色を追加します。 
<style name="OneTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="custom_red">#8b030c</item>
    <item name="custom_blue">#0f1b8b</item>
    <item name="custom_green">#1c7806</item>
</style>
<style name="TwoTheme" parent="Theme.AppCompat.Light.DarkActionBar" >
    <item name="custom_red">#ff606b</item>
    <item name="custom_blue">#99cfff</item>
    <item name="custom_green">#62e642</item>
</style>
 各テーマのカスタムカラーを作成しました。このカラーをビューに追加しましょう。
"?attr /"を使用してTextViewにcustom_blue色を追加します。
あなたのimageViewに移動し、この色を追加してください:
<TextView>
    android:id="@+id/txte_view"
    android:textColor="?attr/custom_blue" />
 私たちは単一行setTheme(R.style.TwoTheme);だけでテーマを変更することができsetTheme(R.style.TwoTheme);この行は、このActivity.javaように、 onCreate()メソッドのsetContentView()メソッドの前にある必要があります。 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(R.style.TwoTheme);
    setContentView(R.layout.main_activity);
    ....
}
 すべてのアクティビティのテーマを一度に変更する
すべてのアクティビティのテーマを変更する場合は、MyActivityという名前の新しいクラスを作成してAppCompatActivityクラス(またはActivityクラス)をsetTheme(R.style.TwoTheme);行を追加するsetTheme(R.style.TwoTheme); onCreate()メソッドに: 
public class MyActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (new MySettings(this).isDarkTheme())
            setTheme(R.style.TwoTheme);
    }
}
 最後に、すべてのアクティビティに移動して、すべてをMyActivityベースクラスを拡張します 。
public class MainActivity extends MyActivity {
    ....
}
 テーマを変更するには、 MyActivityに行き、 R.style.TwoThemeをあなたのテーマ( R.style.OneTheme 、 R.style.ThreeTheme ....)に変更してください。 

