2017-08-09 3 views
0

に任意のレイアウトでcolors.xmlを使用して、私はレイアウトでこれらの色のいずれかを使用したい場合はアンドロイド

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="colorPrimary">#3F51B5</color> 
    <color name="colorPrimaryDark">#303F9F</color> 
    <color name="colorAccent">#FF4081</color> 
    <color name="indicator_unselected">#4D000000</color> 
    <!--Indigo 500--> 
    <color name="primary_500">#3F51B5</color> 
    <!--Indigo 700--> 
    <color name="primary_700">#303F9F</color> 
    <!--Pink 500--> 
    <color name="accent_500">#E91E63</color> 
    <!--Pink 700--> 
    <color name="accent_700">#C2185B</color> 
    <color name="black_trans80">#33000000</color> 

    <color name="blue_grey">#455A64</color> 
    <color name="red">#F44336</color> 
    <color name="pink">#E91E63</color> 
    <color name="purple">#9C27B0</color> 
    <color name="deep_purple">#673AB7</color> 
    <color name="indigo">#3F51B5</color> 
    <color name="blue">#2196F3</color> 
    <color name="light_blue">#03A9F4</color> 
    <color name="cyan">#00BCD4</color> 
    <color name="teal">#009688</color> 
    <color name="green">#4CAF50</color> 
    <color name="light_green">#8BC34A</color> 
    <color name="lime">#CDDC39</color> 
    <color name="yellow">#FFEB3B</color> 
    <color name="amber">#FFC107</color> 
    <color name="orange">#FF9800</color> 
    <color name="deep_orange">#FF5722</color> 
    <color name="brown">#795548</color> 
    <color name="grey">#E0E0E0</color> 

    <color name="white_70">#B3FFFFFF</color> 
    <color name="cyan_50">#E0F7FA</color> 
    <color name="amber_50">#FFF8E1</color> 
    <color name="purple_50">#F3E5F5</color> 
</resources> 

は、のは、(リストビューを含むレイアウトをlistview.xmlてみましょう/値の解像度でcolors.xmlを持っています)。

私はLinearLayoutとListViewを持っています。私はのLinearLayoutの背景色を変更したい場合は だから、私はこのような何かをする必要があります:

android:background="@color/cyan" 

これは動作します。私の質問は次のとおりです:私のファイルは色と呼ばれています .xmlはcolor.xmlではありません なぜ@colorを使ってこれらのカスタム色にアクセスできますか? @colorsでエラーが表示されるのはなぜですか?

+0

Huuuum ... 'colors.xml'には色のリストがあり、' @color/'を使用しているときには1つの色を取得する必要があります。 '@color'を使って複数の色を得ることはできません – GuilhermeFGL

+0

私は間違っています。私はちょうど混乱していました。私のファイルがこの後に呼び出されるので、 '@ colors'を使って色リストにアクセスすることができません。 – ckbln

+1

ドキュメントを見てください:https://developer.android.com/guide/topics/resources/more-resources.html#Colorこのセクションに注意してください: 'ファイル名は任意です。 要素の名前がリソースIDとして使用されます。 ' –

答えて

0

ファイル名は関係なく、物事はタグです。名前でファイルを作成し、そのファイルに色を付けることができます。しかし、彼らが<color>タグに入っていることを確認してください。一般に、このコンベンションに従い、colors.xmlに色を保存するには、palette.xmlに色を保存することもできます。

<color name=</color> // This tag matter and actually define resources 
        // It doesn't matter what is a file name 

あなたのケースでは、シアンの名前でカラーリソースにアクセスしています。どのファイルに存在するのかは決して特定しません。

<color name="cyan">#00BCD4</color> 
1

XMLタグの名前は、valuesフォルダの下にあるすべてのものです。

<color name="cyan">#00BCD4</color> 

ここで、タグの名前はcolorです。したがって、@color/を使用してアクセスできます。