Color Android Studio (Цвета)

java.lang.Object
 ↳ android.graphics.Color

Для создания и манипуляциями с цветами существует класс Color. Он представлен в трех проявлениях:

  • Color Int
  • Color Longs
  • Color экземпляр

Color Int

Фактически это переменная типа int, которая объединяет в себе 4 компонента:

Компонент Имя Розмер Диапазон значений
A Alpha 8 бит [0..255]

“>[0..255]

R Red 8 бит [0..255]

“>[0..255]

G Green 8 бит [0..255]

“>[0..255]

B Blue 8 бит [0..255]

“>[0..255]

int занимает 32 бита, и 4 компонента – каждый по 8 бит – дают 32 бита информации.

Один из приемов, как задав переменные A, R, G, B в диапазоне от 0 до 255 преобразовать их в 16-ричный вид нужного формата:

int color = (A & 0xff) << 24 | (R & 0xff) << 16 | (G & 0xff) << 8 | (B & 0xff);

Обратное преобразование:

 int A = (color >> 24) & 0xff;
 int R = (color >> 16) & 0xff;
 int G = (color >>  8) & 0xff;
 int B = (color      ) & 0xff;

Но так же значения можно извлечь, используя методы класса color: alpha(int), red(int), blue(int), green(int). В скобках указывается переменная, содержащая colorInt.

 

Color Longs

Этот тип более точный, чем ColorInt, поэтому задавая его передаются больше компонентов и поддерживает различные цветовые схемы:

Component Name Size Range
схема RGB
R Red 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

G Green 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

B Blue 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

A Alpha 10 бит [0..1023]

“>[0..1023]

Color space 6 бит [0..63]

“>[0..63]

схемаsRGB
A Alpha 8 бит [0..255]

“>[0..255]

R Red 8 бит [0..255]

“>[0..255]

G Green 8 бит [0..255]

“>[0..255]

B Blue 8 бит [0..255]

“>[0..255]

X не используются 32 бит 0

“>0

схемаXYZ
X X 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

Y Y 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

Z Z 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

A Alpha 10 бит [0..1023]

“>[0..1023]

Color space 6 бит [0..63]

“>[0..63]

схемаLab
L L 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

a a 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

b b 16 бит [65504.0,65504.0]

“>[−65504.0,65504.0]

A Alpha 10 бит [0..1023]

“>[0..1023]

Color space 6 бит [0..63]

“>[0..63]

схемаCMYK
Не поддерживается

 

Чтобы отличать переменную long от int рекомендуется использовать аннотацию @ColorLong:

@ColorLong long p3 = pack(1.0f, 1.0f, 0.0f, 1.0f, colorSpaceP3);

Наиболее часто для запаковки цвета используется метод pack, который на вход принимает набор переменных float и название цветовой схемы.

Для получения отдельных компонентов из переменной long используются те же методы что и в int: alpha(long) чтобы получить последний по счету компонент; red(long) чтобы получить 1й по счету компонент, green(long) чтобы получить 2й по счету компонент, blue(long) чтобы получить 3й по счету компонент.

Существуют различные цветовые схемы, чтобы использовать одну из них необходимо обратиться к методу абстрактного класса ColorSpace:

ColorSpace lab = ColorSpace.get(ColorSpace.Named.LAB);

Вместо LAB можно указать любое из значений enum ColorSpace.Named: ACES, ACESCG, ADOBE_RGB, BT2020, BT709, CIE_LAB, CIE_XYZ, DCI_P3, DISPLAY_P3, EXTENDED_SRGB, LINEAR_EXTENDED_SRGB, LINEAR_SRGB, NTSC_1953, PRO_PHOTO_RGB, SMPTE_C, SRGB.

Чтобы перейти от одной цветовой схемы к другой можно воспользоваться методом connect(ColorSpace, ColorSpace).

 

Color экземпляр класса

Теперь, когда мы задали числовое представление цвета, используя различные цветовые схемы и возможности компановки, можно создать экземпляр класса Color:

 @ColorLong long p3 = pack(1.0f, 1.0f, 0.0f, 1.0f, colorSpaceP3);
 Color opaqueYellow = Color.valueOf(p3); // из переменной цвета long
Color opaqueRed = Color.valueOf(0xffff0000); // из переменной цвета int

 

Константы

int BLACK
int BLUE
int CYAN
int DKGRAY
int GRAY
int GREEN
int LTGRAY
int MAGENTA
int RED
int TRANSPARENT
int WHITE
int YELLOW

При создании экземпляра класса Color, по умолчанию используется цветовая схема sRGB

 

Методы

static int HSVToColor(float[] hsv) Преобразование компонентов HSV в цвет ARGB.
static int HSVToColor(int alpha, float[] hsv) Преобразование компонентов HSV в цвет ARGB.
static void RGBToHSV(int red, int green, int blue, float[] hsv) Преобразование RGB-компонентов в HSV.
static int alpha(int color) Возвращает альфа-компонент цвета int.
float alpha() Возвращает значение альфа-компонента в диапазоне [0..1].
static float alpha(long color) Возвращает альфа-компонент, закодированный в указанном цвете.
static int argb(int alpha, int red, int green, int blue) Возвращает цвет-int из альфа, красного, зеленого, синего компонентов.
static int argb(float alpha, float red, float green, float blue) Возвращает цвет-int из альфа-, красных, зеленых, синих поплавковых компонентов в диапазоне [0..1].
static int blue(int color) Возвращает синий компонент цвета int.
float blue() Возвращает значение синего компонента в диапазоне, определяемом цветовым пространством этого цвета
static float blue(long color) Возвращает синий компонент, закодированный в указанном цвете.
staticColorSpace colorSpace(long color) Возвращает цветовое пространство, закодированное в указанном цвете.
static void colorToHSV(int color, float[] hsv) Преобразует цвет ARGB в его компоненты HSV.
static long convert(long color, ColorSpace.Connector connector) Преобразует указанный цвет из цветового пространства в другое с помощью указанного цветового пространства.
Color convert(ColorSpace colorSpace) Преобразует этот цвет из своего цветового пространства в указанное цветовое пространство.
static long convert(int color, ColorSpace colorSpace) Преобразует указанный цвет ARGB цвета из цветового пространства sRGB в указанное цветовое пространство
static long convert(float r, float g, float b, float a, ColorSpace source, ColorSpace destination) Преобразует указанный 3-компонентный цвет из исходного цветового пространства в целевое цветовое пространство.
static long convert(float r, float g, float b, float a, ColorSpace.Connector connector) Преобразует указанный 3-компонентный цвет из цветового пространства в другое, используя указанный формат цветового пространства.
static long convert(long color, ColorSpace colorSpace) Преобразует указанный цвет с цветового пространства в указанное цветовое пространство
boolean equals(Object o) Указывает, является ли какой-либо другой объект «равным» этому.
ColorSpace getColorSpace() Возвращает цветовое пространство этого цвета.
float getComponent(int component) Возвращает значение указанного компонента в диапазоне, определяемом цветовым пространством этого цвета (см. GetMinValue (int) иgetMaxValue (int)).
int getComponentCount() Возвращает количество компонентов, которые формируют значение цвета в соответствии с цветовой моделью этого цветового пространства, плюс один дополнительный компонент для альфы.
float[] getComponents() Возвращает компоненты этого цвета в виде нового массива.
float[] getComponents(float[] components) Копирует компоненты этого цвета в поставляемом массиве.
ColorSpace.Model getModel() Возвращает цветовую модель этого цвета.
static float green(long color) Возвращает зеленый компонент, закодированный в указанном цвете.
float green() Returns the value of the green component in the range defined by this color’s color space (see getMinValue(int) andgetMaxValue(int)).
static int green(int color) Возвращает зеленый компонент цвета int.
int hashCode() Возвращает значение хэш-кода для объекта.
static boolean isInColorSpace(long color, ColorSpace colorSpace) Указывает, указан ли указанный цвет в указанном цветовом пространстве.
boolean isSrgb() Указывает, находится ли этот цвет в цветовом пространстве sRGB.
static boolean isSrgb(long color) Указывает, указан ли указанный цвет в цветовом пространстве sRGB.
static boolean isWideGamut(long color) Указывает, находится ли указанный цвет в цветовом пространстве с широким охватом.
boolean isWideGamut() Указывает, находится ли этот цветный цвет в цветовом пространстве с широким охватом.
static float luminance(long color) Возвращает относительную яркость цвета.
static float luminance(int color) Возвращает относительную яркость цвета.
float luminance() Возвращает относительную яркость этого цвета.
static long pack(int color) Преобразует указанный цвет ARGB в цвет RGBA в цветовом пространстве sRGB.
static long pack(float red, float green, float blue, float alpha) Упаковывает цвет sRGB, определенный указанными значениями красного, зеленого, синего и альфа-компонентов, в цвет RGBA в цветовом пространстве sRGB.
static long pack(float red, float green, float blue, float alpha, ColorSpace colorSpace) Упаковывает 3-компонентный цвет, определенный указанными значениями красного, зеленого, синего и альфа-компонентов, в цвет, длинный в указанном цветовом пространстве.
static long pack(float red, float green, float blue) Упаковывает цвет sRGB, определенный указанными значениями красного, зеленого и синего компонентов, в цвет RGBA, длинный в цветовом пространстве sRGB.
long pack() Разбирает строку и возвращает соответсвующий цвет-int.
static int parseColor(String colorString) Parse the color string, and return the corresponding color-int.
float red() Возвращает значение красного компонента в диапазоне, определяемом цветовым пространством этого цвета
static float red(long color) Возвращает красный компонент, закодированный в указанном цвете.
static int red(int color) Возвращает красный компонент цвета int.
static int rgb(float red, float green, float blue) Возвращает цвет-int из красных, зеленых, синих компонентов с плавающей точкой в ​​диапазоне [0..1].
static int rgb(int red, int green, int blue) Возвращает цвет-int из красного, зеленого, синего компонентов.
int toArgb() Преобразует этот цвет в цвет ARGB.
static int toArgb(long color) Преобразует указанный цвет в длину до ARGB color int.
String toString() Возвращает строковое представление объекта.
static Color valueOf(float r, float g, float b) Создает новый непрозрачный цвет в цветовом пространстве sRGB с указанными значениями красного, зеленого и синего компонентов.
static Color valueOf(float r, float g, float b, float a) Создает новый цвет в цветовом пространстве sRGB с указанными значениями красного, зеленого, синего и альфа-компонентов.
static Color valueOf(int color) Создает новый экземпляр Color из цвета ARGB int.
static Color valueOf(float[] components, ColorSpace colorSpace) Создает новый цвет в указанном цветовом пространстве с указанными значениями компонентов.
static Color valueOf(long color) Создает новый экземпляр Color из длинного цвета.
static Color valueOf(float r, float g, float b, float a, ColorSpace colorSpace) Создает новый цвет в указанном цветовом пространстве с указанными значениями красного, зеленого, синего и альфа-компонентов.

You may also like...

112 комментариев

  1. Cialis Cuanto Cuesta Viagra 25mg Generika canadian pharmacy cialis 20mg Propecia Nizoral Hair Loss Treatments Tarif Cialis Viagra Adolescent

  2. Kamagra 100mg Test Discount Plavix Coupons Propecia Engorda Garantia De Satisfaccion online pharmacy Kamagra A Buon Mercato

  3. Bentyl Mastercard Canada Viagra Uk Without Prescription Achat Cialis cialis Buy Cytotec 10 Pills

  4. Tadalafil India Pharmacy acheter viagra ligne france Buy Orlistat Cheap Online Cialis

  5. Zithromax For Babies Propecia Online Cheapest cialis vs viagra Levotiroxina Mexico Pharmacy Get Atarax Online Fast Shipping Option

  6. Purchasing Generic Stendra Discount On Line Arkansas generic viagra buy brand name accutane

  7. Purchasing Stendra From Canada Does Amoxicillin In Pill Form Expire viagra prescription Achat De Misoprostol En Belgique

  8. Viagra Dosierung Nebenwirkungen cialis cheapest online prices Buy Cheap Cialis Online

  9. Tabletas Propecia Generico viagra Cialis Madrid Entrega En Mano

  10. Solubility Of Amoxicillin In Water cialis 5mg Purchase Accutane Online

  11. Priligy Sustancia Activa viagra Acheter Tadalafil Effet Secondaire Du Cialis 20

  12. Where Can I Get Suprax buy cialis online Buy Lasix Online Australia Safe Site For Viagra Europe Purchasing Zentel

  13. Promethazine Without Prescription canadian pharmacy cialis Viagra Online Generic Fast Delivery

  14. Levitra Mas Potente Que Viagra Cialis Farmaco Da Banco Safest Place To Buy Ed Medicens generic viagra Cheap Viagra Without A Prescription Meprate

  15. Buy Long Lasting Cialis Online Where Can I Buy Generic Provera Best Website Viagra Kaufen Ohne cialis Clomid Mode D’Emploi Cialis Generique Tunisie

  16. Progesterone For Sale buy generic cialis online Synthroid 125 Mcg Usa Propecia Eficacia 1 Mg

  17. Where To Buy Lasix Cheap Generic Viagra Soft Pills Tricor 145 Mg Need Buy Acheter Cialis Generique En France Buying real worldwide isotretinoin best website mastercard

  18. Prix Levitra En Ligne Clomid Fait Il Grossir where to buy cialis online safely Medicament Amoxil Cheapest Viagra On The Internet Purchase Isotretinoin Price

  19. Amoxicillin And Doxycycline Together Pharmacie En Ligne Kamagra Cialis Kohlpharma Gmbh generic cialis Acquista Propecia Per

  20. Store Online Site Dura Dapoxetine Cymbalta propecia inem Kamagra Vs Silagra Kamagra Aus Thailand Cialis Super Active Plus

  21. Secure Hydrochlorothiazide Viagra Et Periode Refractaire Amoxicillin For Pink Eye cialis 5mg Cialis Naturelle

  22. Non Prescription Pharmacy Acquisto Viagra Generico In Contrassegno Isotretinoin For Sale Internet cialis overnight shipping from usa Cheap Effexor isotretinoin discount fedex shipping Glasgow Viagra Generico Contrareembolso Espana

  23. Cialis 10 Mg Tadalafil cialis 5mg best price Canadia Pharmacy Cialis Zithromax Acid Reflux Genuine Viagra 100 M

  24. Keflex Dosing For Cats Ear Drainage Amoxicillin Keflex Treatment Bladder Infection cheapest cialis 20mg Zithromax After Meal Comprar Cialis Generico Paypal I Would Like To Purchase Cialis

  25. Generic Amoxicilina Real Buying cialis 5 mg best price usa Cealisbuy

  26. Cialis Online Offerta Rio Rico Pharmacy Canadian Rx Net cialis tablets for sale Amoxicillin And Clavulanate Potassium Refrigerate Generic Cialis India Pharmacy Zithromax Azithromycin Online

  27. Levitra Lower Back Pain Kamagra Chewable 100 Mg Canada Amoxicillin Taste viagra online pharmacy Epogen Viagra Online Farmacia

  28. Online Pharmacy No Presc cialis without a doctor’s prescription Generic Real Provera

  29. Best Buy Isotretinoin viagra Amoxicillin Side Effects Sexual Excitement Cialis Hace Dano

  30. Safe Place Online To Order Cytotec generic cialis canada Precio De Levitra 10 Mg En Farmacia Cialis Ohne Rezept Hamburg

  31. Nizagara Online Levitra Strength buy cialis Buy Viagra From Canada Buy Generic Levitra Overnight Levitra Modalita Di Assunzione

  32. Generic Viagra From India Zithromax Z Pak Uses Acquistare Cialis Viagra online pharmacy Where Can I Buy Generic Cialis Online Levitra Order Uk

  33. Cheap generic cialis online buy cialis online nizoral alternative cialis 20mg

  34. Cheap generic cialis tadalafil cheap cialis online generic cialis

  35. best cbd oil on amazon cbd oil in canada hemp lotion

  36. cbd oil with thc cbd oil for sale legitimate cbd oil companies

  37. cannabis oil for nerve pain benefits of hemp oil healthy hemp

  38. slot games with bonus spins real money casino dakota sioux casino

  39. free slots with bonus rounds no download casino game cashman casino slots

  40. hollywood casino online slots casino bonus codes my vegas slots

  41. virgin casino online casino real money best casino slots online

  42. no deposit bonus codes for usa players online casinos msn games zone online casino

  43. slot games with bonus spins real money casino foxwoods online casino

  44. free vegas slots online play online casino free las vegas casino games

  45. vegas slots online free play casino vegas world slots

  46. casino real money real money casino casinos online

  47. all games list free slots play casino heart of vegas casino game

  48. free slots hollywood online casino real money caesars slots

  49. pechanga casino online casino vegas world free games online slots

  50. cashman casino slots online casino real money online casinos for us players

  51. vegas world free games online casino game usa casinos no deposit free welcome bonus

  52. usa casinos no deposit free welcome bonus casino slots usa no deposit casino bonus codes

  53. totally free slots no download no deposit casino all free slots

  54. pompeii slots casino games zone online casino bingo games

  55. free slots online casino bonus codes free games online no download no registration

  56. big fish casino download free big fish casino casino real money

  57. slot machines free games casino slots lady luck

  58. big fish casino slots online casino games wheel of fortune slots

  59. free online games that pay real money casino online caesars casino online

  60. play free casino games online free casino free slot games for fun

  61. vegas free slots free casino games online online casino no deposit free welcome bonus

  62. quick hits free slots play online casino vegas world free slots

  63. all casino games free download casino online slots play slots

  64. free video slots big fish casino real casino

  65. myvegas slots casino games free blackjack vegas world

  66. free online casino slots real money casino play slots

  67. vegas world casino games konami free slots

  68. vegas world free games online casino play 300 free slots no download no registration

  69. free casino games with bonus casino play caesar casino free slots games

  70. lady luck casino caruthersville online casino games casinos in iowa

  71. all free casino slots games free casino games online 300 free slots of vegas

  72. vegas world free slots casino online slots new no deposit casinos accepting us players

  73. casino bonus codes online casinos real money casinos

  74. free online casino casino slots empire city casino online free

  75. las vegas casinos slots machines play online casino jack online casino

  76. 100 best usa casinos with best codes big fish casino 200 free slot games

  77. ruby slots casino bonus codes most popular free casino slots

  78. free slots slotomania real money casino casino online slots

  79. free casino online casino real money free online casino games

  80. free vegas casino games casino online bovada casino

  81. casino real money casino bonus codes win free money no deposit

  82. free casino for fun only casino real money casino games free slots

  83. jackpot magic slots online casino games free penny slots with bonus spins

  84. online gambling sites free casino free casino games for fun

  85. 200 free slot casino games play online casino pop slots casino

  86. play lady luck big fish casino free blackjack games casino style

  87. play free for real money online casino real money casinos

  88. free casino games no registration no download casino online slots free casino games online

  89. play lady luck online casino real casino slot machine games

  90. list of las vegas casinos casino real money free slots no registration

  91. vegas slots online free free casino games online casinos near my location

  92. cashman casino slots casino game download free casino slot games

  93. play lady luck online no deposit casino vegas casino games

  94. free slot games casino slots play free for real money

  95. cashman casino slots free online casino ruby slots

  96. play online casino games casino game vegas world free games online slots

  97. paradise casino casino play no deposit casinos

  98. zone casino vegas world casino online free las vegas slot machines

  99. wheel of fortune slots best online casinos casino vegas world

  100. slots of vegas casino slots play slots online for money

  101. bovada casino free casino games free casino slots with bonuses

  102. zone casino vegas world real money casino play free casino games online

  103. online casinos for us players free casino games 888 casino online

  104. EverettItela:

    Hello, recognition you in regard to facts! how much is viagra http://viapwronline.com I repost in Facebook.
    generic viagra without subscription

  105. EverettItela:

    Hello, tender thanks you in regard to word! viagra samples http://viapwronline.com I repost in Facebook.
    viagra coupons

  106. Purchase Female Viagra Online Conseguir Viagra Cuanto Cuesta Cialis Healthy Man Viagra Sales Buy Kamagra Tablets Uk Zithromax Asthma

  107. Where To Order Direct Isotretinoin 10mg Tablets Cialis Und Levitra Pfizer Viagra Kaufen Rezeptfrei Buy Cialis Kamagra Prices

Добавить комментарий

Ваш e-mail не будет опубликован.

Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.
Регистрация не требуется. В качестве логина укажите рабочую почту, в качестве пароля - пароль от компьютера.