Android-styles-and-themes

提供:Dev Guides
移動先:案内検索

Android-スタイルとテーマ

'_style リソースは、フォーマットを定義し、UIを探します。 スタイルは、個々のビュー(レイアウトファイル内から)またはアクティビティまたはアプリケーション全体(マニフェストファイル内から)に適用できます。_

スタイルの定義

スタイルは、レイアウトを指定するXMLとは別のXMLリソースで定義されます。 このXMLファイルはプロジェクトの res/values/ ディレクトリにあり、スタイルファイルに必須のルートノードとして <resources> を持ちます。 XMLファイルの名前は任意ですが、.xml拡張子を使用する必要があります。

*<style>* タグを使用して、ファイルごとに複数のスタイルを定義できますが、各スタイルには、スタイルを一意に識別する名前が付けられます。 Androidスタイルの属性は、以下に示すように *<item>* タグを使用して設定されます-
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <style name="CustomFontStyle">
      <item name="android:layout_width">fill_parent</item>
      <item name="android:layout_height">wrap_content</item>
      <item name="android:capitalize">characters</item>
      <item name="android:typeface">monospace</item>
      <item name="android:textSize">12pt</item>
      <item name="android:textColor">#00FF00</item>/>
   </style>
</resources>

'_<item>の値には、キーワード文字列、16進数の色、別のリソースタイプへの参照、またはスタイルプロパティに応じた他の値を指定できます。_

スタイルを使用する

スタイルが定義されると、次のように style 属性を使用してXMLレイアウトファイルで使用できます-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

   <TextView
      android:id="@+id/text_id"
      style="@style/CustomFontStyle"
      android:text="@string/hello_world"/>

</LinearLayout>

Androidスタイルに関連する概念を理解するには、link:/android/android_style_demo_example [Style Demo Example]を確認してください。

スタイルの継承

Androidは、Webデザインのカスケードスタイルシートと非常によく似た方法でスタイル継承をサポートします。 これを使用して既存のスタイルからプロパティを継承し、変更または追加するプロパティのみを定義できます。

カスタムテーマを実装するには、MyAndroidApp/res/values/themes.xmlを作成または編集し、次を追加します—

<resources>
   ...
   <style name="MyCustomTheme" parent="android:style/Theme">
   <item name="android:textColorPrimary">#ffff0000</item>
   </style>
   ...
</resources>

AndroidManifest.xmlで、スタイルを設定するアクティビティにテーマを適用します–

<activity
   android:name="com.myapp.MyActivity"
   ...
   android:theme="@style/MyCustomTheme"
  />

新しいテーマがアクティビティに適用され、テキストが明るい赤になります。

テーマ

テーマ属性への色の適用

カスタムテーマに<item>要素を追加することにより、ウィンドウの背景やプライマリテキストの色などのテーマ属性に色リソースを適用できます。 これらの属性は、styles.xmlファイルで定義されています。 たとえば、ウィンドウの背景にカスタムカラーを適用するには、MyAndroidApp/res/values/styles.xmlファイルで定義されているカスタムテーマに次の2つの<item>要素を追加します-

<resources>
   ...
   <style name="MyCustomTheme" ...>
      <item name="android:windowBackground">@color/my_custom_color</item>
      <item name="android:colorBackgroundCacheHint">@color/my_custom_color</item>
   </style>
   ...
</resources>

テーマ

ボタンでカスタム9パッチを使用する

9パッチのドロアブルは、視覚的な整合性を維持しながら幅と高さをスケーリングできる特別な種類の画像です。 9個のパッチは、Androidボタンの外観を指定する最も一般的な方法ですが、任意の描画可能なタイプを使用できます。

9つのパッチボタン

9パッチボタンのサンプル

9つのパッチボタンを作成する手順

  • このビットマップを/res/drawable/my_nine_patch.9.pngとして保存します
  • 新しいスタイルを定義する
  • 新しいボタンスタイルをカスタムテーマのbuttonStyle属性に適用します

新しいスタイルを定義

<resources>
   ...
      <style name="MyCustomButton" parent="android:Widget.Button">
      <item name="android:background">@drawable/my_nine_patch</item>
      </style>
   ...
</resources>

テーマを適用

<resources>
   ...
      <style name="MyCustomTheme" parent=...>
         ...
         <item name="android:buttonStyle">@style/MyCustomButton</item>
      </style>
   ...
</resources>

テーマ

Androidテーマ

あなたがスタイルの概念を理解したことを願って、それでは*テーマ*とは何かを理解してみましょう。 テーマは、個々のビューではなく、アクティビティまたはアプリケーション全体に適用されるAndroidスタイルに他なりません。

したがって、スタイルがテーマとして適用されると、アクティビティまたはアプリケーションのすべての*表示*が、サポートする各スタイルプロパティを適用します。 たとえば、アクティビティのテーマとして同じ CustomFontStyle スタイルを適用すると、その Activity 内のすべてのテキストに緑の等幅フォントが適用されます。

アプリケーションのすべてのアクティビティのテーマを設定するには、 AndroidManifest.xml ファイルを開き、 <application> タグを編集して、 android:theme 属性をスタイル名に含めます。 たとえば-

<application android:theme="@style/CustomFontStyle">

ただし、アプリケーションの1つのアクティビティのみにテーマを適用する場合は、android:theme属性を<activity>タグのみに追加します。 たとえば-

<activity android:theme="@style/CustomFontStyle">

Androidで定義されているデフォルトのテーマは数多くあり、直接使用することも、次のように parent 属性を使用して継承することもできます-

<style name="CustomTheme" parent="android:Theme.Light">
   ...
</style>

Androidテーマに関連する概念を理解するには、link:/android/android_theme_demo_example [Theme Demo Example]を確認してください。

カラーパレットのスタイル設定

レイアウト設計は、それらに基づいた色に基づいて実装可能です。たとえば、次の設計はそれらに基づいて設計されているため、色(青)

テーマ

上記のレイアウトは、style.xmlファイルに基づいて設計されており、 res/values/ に配置されています

<resource>
   <style name="AppTheme" parent="android:Theme.Material">
      <item name ="android:color/primary">@color/primary</item>
      <item name ="android:color/primaryDark">@color/primary_dark</item>
      <item name ="android:colorAccent/primary">@color/accent</item>
   </style>
<resource>

デフォルトのスタイルとテーマ

Androidプラットフォームは、アプリケーションで使用できるスタイルとテーマの大規模なコレクションを提供します。 R.style クラスで利用可能なすべてのスタイルのリファレンスを見つけることができます。 ここにリストされているスタイルを使用するには、スタイル名のすべての下線をピリオドに置き換えます。 たとえば、Theme_NoTitleBarテーマを「@android:style/Theme.NoTitleBar」で適用できます。 あなたは、Androidのスタイルとテーマの次のソースコードを見ることができます-