2010-08-17 3 views
19

Обращает растровый на холст, используя следующий вызов:Как настроить оттенок в Android?

_playerImage = BitmapFactory.decodeResource(getResources(), R.drawable.player); 

Как я теперь подкрашивать это изображение белым? Я пытаюсь сделать изображение белым, как в верхних скроллерах, когда противник попадает в пулю.

Нужно ли использовать что-то другое, кроме BitmapFactory?

ответ

46

Вы можете использовать ColorFilter на своем Paint при рисовании растрового изображения.

+8

Блестящий! Благодаря тонну! "Краска р = новая краска (Color.RED); \t \t ColorFilter фильтр = новый LightingColorFilter (Color.RED, 1); \t \t p.setColorFilter (фильтр);" – FoppyOmega

+1

Привет, Romain, есть ли какой-либо метод рисования тонированного растрового изображения, который не предполагает создание нового экземпляра ColorFilter для каждого вызова рисования? Допустим, у вас есть пара из 100 спрайтов, которые вы хотите оттенять разными цветами. что потребует новый lightingColorFilter для каждого вызова drawBitmap. Это действительно не очень хорошо сочетается со всей философией слива проекта «не выделяйте в своем рендеринге». Тем более, что тонирование имеет прямую корреляцию с бэкэндом blend/modulate opengl, который не требует выделения какого-либо объекта. как насчет вызова drawBitmap (..., int mul, int add)? –

+2

@ P.Melch Хороший вопрос (и это действительно старый, но я помещаю это здесь, потому что он релевантен, а другие могут найти его полезным) ... если у вас относительно небольшой набор цветов, вы можете сохранить несколько экземпляров (вероятно, используя пул) объектов ColorFilter, поскольку LightingColorFilter, похоже, не поддерживает изменение его цвета. Если у кого-то есть лучшая идея, это, безусловно, будет полезно. – kungphu

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