2017-01-23 9 views
1

Это немного сложно объяснить, но здесь идет ...Удалить все черный с RGB, чтобы быть прозрачно

Мне нужен способ получить все черные из цвета так, что он действует больше как реальный свет.

Так, например, я хочу, чтобы RGB (0, 0, 0) был прозрачным вместо черного, а RGB (127, 127, 127) был белым с прозрачностью 50% вместо серого.

На данный момент я использую это:

public static int getHexColor(int[] color) { 
    return android.graphics.Color.rgb(color[0], color[1], color[2]); 
} 

Любые идеи?

+0

Вы должны, вероятно, просто оставить цвета одинаковыми и испортить альфа-канал. – Carcigenicate

+0

Попробуйте RGBA вместо RGB - http://www.css3maker.com/css-3-rgba.html - http://stackoverflow.com/questions/16934796/set-a-rgba-color-to-a -layout – Tasos

+0

Как мне интегрировать RGBA, чтобы избавиться от черного? например, в RGB (127, 127, 127), чтобы быть белым? –

ответ

0

Это может быть сделано с помощью

Color.parseColor("#AARRGGBB"); 

AA является непрозрачность цвета. Итак, что вы можете сделать, это получить значение HEX вашего цвета и добавить одно из этих значений непрозрачности в начало Hex.

100% — FF 
95% — F2 
90% — E6 
85% — D9 
80% — CC 
75% — BF 
70% — B3 
65% — A6 
60% — 99 
55% — 8C 
50% — 80 
45% — 73 
40% — 66 
35% — 59 
30% — 4D 
25% — 40 
20% — 33 
15% — 26 
10% — 1A 
5% — 0D 
0% — 00 

Кредит @Duggu для значений непрозрачности.

0

Я хотел бы предложить следующее:

1) Получите максимум r, g и b. int max = Math.max(r(Math.max(g,b))

Если max == 0 пропуска шаги 2 и 3

2) Делит на 255: float alpha = max/255f;

3) Шкало каждого значения недостающего альфа: r = (int) (r * (1/alpha))

4) Создать новый цвет android.graphics.Color.argb(max, r, g, b)

 Смежные вопросы

  • Нет связанных вопросов^_^