私は通常、drawableをXMLで設定します。android:icon="@drawable/my_icon"
しかし、いくつかのプロジェクトでは、コードandroid:icon="?my_icon"
が表示されます。アンドロイドの違い:icon = "@ drawable/my_icon" android:icon = "?my_icon"?
android:icon="@drawable/my_icon"
とandroid:icon="?my_icon"
の違いは何ですか?
私は通常、drawableをXMLで設定します。android:icon="@drawable/my_icon"
しかし、いくつかのプロジェクトでは、コードandroid:icon="?my_icon"
が表示されます。アンドロイドの違い:icon = "@ drawable/my_icon" android:icon = "?my_icon"?
android:icon="@drawable/my_icon"
とandroid:icon="?my_icon"
の違いは何ですか?
は、本文書にポインティングし、そこから答えを参照: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
という値を持つ可能性があります。その値は、プロジェクトのいくつかのドロウアブルを指すリソース値を参照します。
これはちょっとクリアです。