Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Цвет в строку - Программирование Android

19.11.2013, 19:38. Просмотров 1143. Ответов 6
Метки нет (Все метки)

Подскажите функции пожалуйста!

Java
1
Color.parseColor("#88FF0000")
получает число с цветом доступным для SetColor(

А как из подобнго числа получить "#88FF0000"???
Можно ли получить "урезаный" цвет без прозрачости "#FF0000"???
Можно ли получить позрачность из числа цвета в число или в "88"?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 19:38     Цвет в строку
Посмотрите здесь:

Цвет файлов в VCS - поменять синий цвет имен файлов - Программирование Android
Всем привет, вот каким образом можно поменять цвет имени файлов в навигаторе проекта для файлов которые добавлены в VCS и были изменены....

Поменять цвет! - Программирование Android
Как поменять цвет! там где выделено красное линией!

Цвет ProgressBar - Программирование Android
Здравствуйте. Знает кто нибудь откуда андроид берет цвет для прогрессбара? На разных устройствах разный цвет, у каждого отдельного менять...

Цвет TextView - Программирование Android
Доброго времени суток! Подскажите пожалуйста, как сделать так чтобы background у textview был двумя цветами именно 2мя. Чтобы часть была...

Цвет заголовка в ActionBar - Программирование Android
Здравствуйте! Подскажите пожалуйста как можно изменить цвет заголовка в ActionBar. Я использую support library v7 AppCompat.

Изменить цвет AlertDialog - Программирование Android
Здравствуйте! Имеются такие строчки кода: str ="Мой телефонный номер: 5-555-5"; AlertDialog.Builder build = new...

Установить цвет checkbox - Программирование Android
Есть такой цвет <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
19.11.2013, 20:41     Цвет в строку #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Tester64, можно:
Java
1
2
3
4
5
int color = Color.parseColor("#88FF0000");
 
String hexColor = String.format("#%06X", (0xFFFFFF & color)); // #FF0000
String hexColorWithAlpha = String.format("#%08X", (0xFFFFFFFF & color)); // #88FF0000
String alpha = String.format("%02X", (0xFF & Color.alpha(color))); // 88
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
20.11.2013, 03:56  [ТС]     Цвет в строку #3
Спасибо! То что нужно!
(думал что есть "встроенные" в андроид-яву функции для подобной работы с цветом)

Добавлено через 3 минуты
Не подскажете еще (по ходу возник вопрос):
Как проверить является ли строка цветом? Похоже эта тема тоже "рядом"...
Состоит ли строка из 6 или 8 хекс цифр?

Добавлено через 1 час 41 минуту
Пока проверяю через
Java
1
2
3
4
5
6
try {
  temp_color = Color.parseColor(ColorStr);
  // возвращаем "правильно"
}catch(Exception ex){
  // возвращаем "неправильно"
}
Но чуствую что есть более логичное и простое решение...
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
20.11.2013, 12:16     Цвет в строку #4
Tester64, судя по исходникам класса Color (а другие с цветом не работают), более простого решения нет
Color.parseColor(String)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public static int parseColor(String colorString) {
        if (colorString.charAt(0) == '#') {
            // Use a long to avoid rollovers on #ffXXXXXX
            long color = Long.parseLong(colorString.substring(1), 16);
            if (colorString.length() == 7) {
                // Set the alpha value
                color |= 0x00000000ff000000;
            } else if (colorString.length() != 9) {
                throw new IllegalArgumentException("Unknown color");
            }
            return (int)color;
        } else {
            Integer color = sColorNameMap.get(colorString.toLowerCase(Locale.US));
            if (color != null) {
                return color;
            }
        }
        throw new IllegalArgumentException("Unknown color");
    }

хотя можно проверить регуляркой (дополнительно проверив цвета в формате #RGB и #ARGB):
Java
1
2
3
4
5
6
7
public static boolean isColor(String hex) {
    final String HEX_PATTERN = "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$";
 
    Pattern pattern = Pattern.compile(HEX_PATTERN);
    Matcher matcher = pattern.matcher(hex);
    return matcher.matches();
}
или не мучатся и сделать так:
Java
1
2
3
4
5
6
7
8
public static boolean isColor(String hex) {
    try {
        int temp_color = Color.parseColor(hex);
        return true;
    } catch (Exception ex) {
        return false;
    }
}
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
11.03.2014, 13:08     Цвет в строку #5
Чтобы не создавать новую тему, немного понекропостю)

Есть некая проблема с цветом.
Если писать напрямую в канвасе, то все отлично:
PHP
1
paint.setColor(Color.parseColor("#FF0808"));
Но если написать примерно так:
PHP
1
2
3
String CC;
CC = "#FF0808";
paint.setColor(Color.parseColor(CC));
Цвет возвращает 0. Интересно почему так происходит?
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
11.03.2014, 13:42     Цвет в строку #6
Цитата Сообщение от sirik2012 Посмотреть сообщение
Интересно почему так происходит?
Похоже на волшебство, у меня в обоих случаях одно и то же число возвращается. Покажите код полностью, попробуем разобраться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 13:59     Цвет в строку
Еще ссылки по теме:

Цвет 3-ёх точек в ToolBar - Программирование Android
Как поменять цвет этих точек?

Не меняется цвет в TabWidget - Программирование Android
Приветствую. В общем проблема заключается в том, что имеются два телефона с версией 4.2.2. На одном цвет кнопки и цвет текста в кнопке...

Цвет бэкграунда кнопки - Программирование Android
Всем доброго времени суток! Вопрос в следующем: при нажатии на кнопку она "подсвечивается". Как сделать так, чтобы при нажатии на кнопку в...

Изменить цвет заголовка шаблона - Программирование Android
Всем доброго времени суток. Есть ли способ изменить цвет "шапки", там где прописывается имя нашего проекта с синего (Android Studio по...

Реальный цвет иконки в меню - Программирование Android
Использую стандартный шаблон с Navigation Drawer но применяется серый tint. Как отключить наложение цвета при не выделенном состоянии?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
11.03.2014, 13:59     Цвет в строку #7
Уже нашел ошибку, вставлял перевод в другой кусок кода (смутно написал)).
Спасибо
Yandex
Объявления
11.03.2014, 13:59     Цвет в строку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru