Vasil Valchev
Vasil Valchev

Reputation: 5819

How to set paint.setColor(R.color.white)

I have a custom View that uses Paint and Canvas to draw objects. My question is how to set:

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

from my /res/valuse/color.xml which includes resources like

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#FFFFFF</color>
    <color name="black">#000000</color>
    ...
</resources>

Upvotes: 32

Views: 77914

Answers (5)

Michael Rhodes
Michael Rhodes

Reputation: 21

paint.setColor(Color.parseColor("#FFFFFF"))

Upvotes: 2

Oras
Oras

Reputation: 124

Set any color

paint.setColor( Color.rgb(R, G, B) )

Upvotes: 0

Vasil Valchev
Vasil Valchev

Reputation: 5819

first get your color from xml file

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

is deprecated now, use this instead

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

set color

paint.setColor(color);

xml file preview: 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>

Upvotes: 14

olshevski
olshevski

Reputation: 5010

int color = ContextCompat.getColor(context, R.color.white);
paint.setColor(color);

The setColor() method takes a color number as int value, but not a resource id which is an int as well.

Upvotes: 66

Hani Hussein
Hani Hussein

Reputation: 169

Try using color.white:

paint.setColor(Color.white)

Upvotes: 12

Related Questions