Под умолчанию тему Android У меня есть три пользовательских цветные кнопки с помощьюPorterDuff.Mode.MULTIPLY - Sence этого цвета преобразования в Android
button.getBackground().setColorFilter(customColor, PorterDuff.Mode.MULTIPLY);
buttons http://img94.imageshack.us/img94/1723/themew.jpg
Когда я переключаюсь на Theme.Holo по средства /values-v11/styles.xml
<style name="Theme" parent="android:Theme.Holo">
цвета изменено на:
http://img710.imageshack.us/img710/1659/themeholo.jpg
Как я подозреваю, цвет кнопки по умолчанию был изменен в новой Хола тему и трансформируется с тем же параметром преобразования она дает неожиданные цвета. Я хотел бы сохранить исходные цвета. Для этого я должен знать правила преобразования PorterDuff.Mode.MULTIPLY. Все, что у меня есть на Android-документах:
[Sa * Da, Sc * Dc]
Что это значит? Вероятно, S является точкой исходного растрового изображения (кнопка drawable button.getBackground()) и D - это «точка» моего пользовательского цвета ... Как я могу воспроизвести новый преобразованный цвет из этой формулы? Имеет ли это означает, что новый цвет N является:
[Na, Nr, Ng, Nb] = [Sa * Da, Sr * Dr, Sg * Dg, Sb * Db]
или что !?
UPDATE: Я полагаю, что:
btn_default_normal.9.png использовали для этих кнопок в простой Тема Android
btn_default_normal_holo_dark.9.png используется для Android Holo Theme
Чтобы решить проблему с цветами под Хола тему, я хочу, чтобы промежуточное преобразование из второго (Холи) цвета # 66999999 в первый цвет # F2E1E1E1:
button.getBackground().setColorFilter(some_Intermediate_Color, PorterDuff.Mode.MULTIPLY);
, а затем applay такое же преобразование, какое я использовал до того, как была введена новая тема Холо. Для вычисления этого промежуточного цвета я должен решить две диофантовых уравнений в шестнадцатеричной системе, где Na, Nc находятся в интервале [0, FF] и т, п - целые числа:
66*Na = F2 + 100*m; => Na = 23
99*Nc = E1 + 100*n; => Nc = 89
Таким образом, промежуточный продукт цвет # 23898989.
К сожалению, при реализации полученного промежуточного цвета я все еще не получаю желаемых цветов в результате ... Где я ошибаюсь?
Спасибо за ответ! Пожалуйста, смотрите мое обновление выше! – isabsent
что означает PorterDuff.Mode.MULITPLY? – jonney