2

res/values/colors に次のようなカスタム カラーを含む xml ファイルがある場合:

<?xml version="1.0" encoding="utf-8"?> 
<resources>
 <drawable name="red">#ff0000</drawable>
 <drawable name="blue">#0000ff</drawable>
 <drawable name="green">#00ff00</drawable>
</resources>

色やその他の値を他のコードで使用するにはどうすればよいですか?

これらを引数に使用するにはどうすればよいですか? 何かのようなもの:

    int green = context.getResources().getColor(R.color.green);
    g.drawRect(1, 1, 181, 121, green);

logcat でエラーが発生し、プログラムがクラッシュします。したがって、colors.xml が res/values/ にあり、コンテキストをインポートした場合、たとえば引数で緑を使用するにはどうすればよいでしょうか?

4

1 に答える 1

2

まず、xmlを に変更drawableします。color

次に、コンテキストが必要です。こんなふうになります:

context.getResources().getColor(R.color.green);

int カラー値を返します。

編集:

その他の値については、次の関数を参照してください。

http://developer.android.com/reference/android/content/res/Resources.html

私は tp がすべての xml 色を一度取得してそこから渡すのが好きなので、上記を何度も入力する必要はありません。これがベスト プラクティスと見なされるかどうかは不明です。

これをペイントで使用する場合は、次のようになります。

// Declare this at the beginning:
Paint green paint;
// This goes in the constructor:
greenPaint = new Paint();
greenPaint.setColor(context.getResources().getColor(R.color.green));
// then draw something in onDraw, for example:
canvas.drawRect(5,5,5,5, greenPaint);

複数のペイントなどで使用する場合は、int として保存します。

int greenNum = context.getResources().getColor(R.color.green);
于 2013-01-24T02:01:56.547 に答える