web-dev-qa-db-ja.com

Paint.setColor(R.color.white)を設定する方法

ペイントとキャンバスを使用してオブジェクトを描画するカスタムビューがあります。私の質問は設定方法です:

int color = R.color.white;
Paint.setColor(color);

次のようなリソースを含む私の/res/valuse/color.xmlから

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#FFFFFF</color>
    <color name="black">#000000</color>
    ...
</resources>
21
Vasil Valchev
_int color = ContextCompat.getColor(context, R.color.white);
Paint.setColor(color);
_

setColor()メソッドは、色番号をint値として受け取りますが、intであるリソースIDも受け取りません。

54

最初にxmlファイルから色を取得します

int color = context.getResources().getColor(R.color.colorPrimary); // old

廃止されました。代わりにこれを使用してください

int color = ContextCompat.getColor(context, R.color.colorPrimary); // new

色を設定する

Paint.setColor(color);

xmlファイルのプレビュー:res/values/color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>
9
Vasil Valchev