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...

32 комментария

  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. 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

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

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

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

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

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

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

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

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