Create a new color drawable

后端 未结 6 771
时光说笑
时光说笑 2021-01-30 12:43

I am trying to convert a hex value to an int so I can create a new color drawable. I\'m not sure if this is possible, but according to the documentation, it should. It plainly a

相关标签:
6条回答
  • 2021-01-30 12:43

    It should be like this...

    ColorDrawable cd = new ColorDrawable(0xffff6666);
    

    Note I used 8 hex digits, not 6 hex digit . which add to transparency

    0 讨论(0)
  • 2021-01-30 12:48

    For using with ContextCompat and rehuse the color you can do something like this:

    ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.white));
    
    0 讨论(0)
  • 2021-01-30 12:57

    By followingthe above advice,to be a summary of this question:

    1. ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ce9b2c"));`

    2. ColorDrawable colorDrawable = new ColorDrawable(0xFFCE9B2C); Note there is 8 hex digits, not 6 hex digit,which no work. Case all

    3. ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(mContext,R.color.default_color));

    Selecting up to you!

    0 讨论(0)
  • 2021-01-30 13:00

    This is how I converted a Hex color to int and applied to a Background of a View

    Let's say that we have a color #8080000.

    1) Hex to int conversion

    int myColor = Color.parseColor("#808000");
    

    2) Set background

    view.setBackgroundColor(context.getColor(myColor));
    
    0 讨论(0)
  • 2021-01-30 13:02

    Since you're talking about hex you have to start with 0x and don't forget the opacity.

    So basically: 0xFFFF6666

    ColorDrawable cd = new ColorDrawable(0xFFFF6666);
    

    You can also create a new colors.xml file into /res and define the colors like:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="mycolor">#FF6666</color>
    </resources>
    

    and simply get the color defined in R.color.mycolor

    getResources().getColor(R.color.mycolor)
    
    0 讨论(0)
  • 2021-01-30 13:09

    I think you have to use :

    public static int parseColor (String colorString)

    Added in API level 1 Parse the color string, and return the corresponding color-int. If the string cannot be parsed, throws an IllegalArgumentException exception. Supported formats are: #RRGGBB #AARRGGBB red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray, darkgray, grey, lightgrey, darkgrey, aqua, fuschia, lime, maroon, navy, olive, purple, silver, teal

    0 讨论(0)
提交回复
热议问题