2014-01-10 14 views

答えて

2

は、本文書にポインティングし、そこから答えを参照:Applying styles and themes

だけのスタイルのように、テーマはまた、XML要素で宣言されている、と同じように参照されています。違いは、アプリケーションやアクティビティ全体にテーマを追加するということです。これはAndroid Manifestのandを使用してテーマを個々のビューに適用することはできません。

リンク上で定義されたテーマの例宣言取ることができます:リソースを参照するために

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="CustomTheme"> 
    <item name="windowBackground">@drawable/screen_background_white</item> 
    <item name="panelForegroundColor">#FF000000</item> 
    <item name="panelBackgroundColor">#FFFFFFFF</item>  
    <item name="panelTextColor">?panelForegroundColor</item> 
    <item name="panelTextSize">14</item> 
    <item name="menuItemTextColor">?panelTextColor</item> 
    <item name="menuItemTextSize">?panelTextSize</item> 
    </style> 
</resources> 

お知らせアットマーク(@)を使用すると、疑問符(?)を。アットマークは、他の場所で既に定義されているリソース(このプロジェクトやAndroidフレームワークからのものかもしれません)を参照していることを示しています。 (たとえば、panelTextColorはpanelForegroundColorに割り当てられた同じ色を使用します。このテクニックはXMLリソースでのみ使用できます。

疑問符は、現在ロードされているテーマのリソース値を参照していることを示します。です。これは、その名前の値で特定のものを参照することによって行われます。だから、

、あなたが見る場合に、再びその値の前に疑問符を持っている別の項目panelTextColorからmenuItemTextColorポイント。どうして?現在ロードされているcustomThemeからリソース値を再度参照しているためです。

同様に、コードは記述されていませんが、現在ロードされているテーマがと呼ばれるitemという値を持つ可能性があります。その値は、プロジェクトのいくつかのドロウアブルを指すリソース値を参照します。

これはちょっとクリアです。

関連する問題