Просматривая документацию для Android (которая выглядит на основе JSE с полностью альтернативным графическим интерфейсом), вы получите изображение поддержки альфа-канала:
Bitmap bmp=createBitmap(100,100,Bitmap.Config.ARGB_8888);
Пока растровое изображение source поддерживает альфа-канал, вы сможете рисовать его на другом растровом изображении и учитывать его значения альфа.
Чтобы затемнить, вам нужно будет многократно рисовать изображение с некоторой подходящей задержкой (но событие, управляемое таймером, а не в цикле, если система рендеринга Android сильно отличается от других Javas), манипулируя альфа-каналом для каждого пиксель на каждой последующей краске.
// Make image more transparent by 50%
int[] pxls=new int[100*100];
bmp.getPixels(pxls,0,100,0,0,100,100);
for(int xa=0,len=pxl.length; xa<len; xa++) {
int alp=(pxls[xa] & 0xFF000000);
alp<<1;
pxls[xa]=(alp | (pxls[xa] & 0x00FFFFFF);
}
bmp.setPixels(pxls,0,100,0,0,100,100);
Предупреждение 1: Я написал этот код на месте из JavaDoc; он не был скомпилирован или протестирован.
Предупреждение 2: Если цветовое разрешение аппаратного устройства не поддерживает альфа-канал (обычно известный как 32-битный цвет), рисование любых изображений в базовой графической системе может просто игнорировать альфа-канал ). Но любой композитинг, который вы делаете до этого на резервном буфере изображения, должен соблюдаться. Суть в том, что вы можете иметь , чтобы использовать рисование с двойной буферизацией для альфа-смешивания, в то же время будучи невосприимчивым к возможностям / конфигурации основного устройства.