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

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

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

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

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

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

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

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
3
Tester64
396 / 357 / 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){
  // возвращаем "неправильно"
}
Но чуствую что есть более логичное и простое решение...
0
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;
    }
}
1
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. Интересно почему так происходит?
0
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
11.03.2014, 13:42 #6
Цитата Сообщение от sirik2012 Посмотреть сообщение
Интересно почему так происходит?
Похоже на волшебство, у меня в обоих случаях одно и то же число возвращается. Покажите код полностью, попробуем разобраться.
0
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
11.03.2014, 13:59 #7
Уже нашел ошибку, вставлял перевод в другой кусок кода (смутно написал)).
Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 13:59
Привет! Вот еще темы с ответами:

Изменить цвет 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"> ...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.03.2014, 13:59
Ответ Создать тему
Опции темы

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