2010-11-09 5 views
0

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

+7

Я с нетерпением жду использования вашего приложения для испытания на эпилепсию. ;) –

ответ

6

Вы можете сделать это, используя изображения. Например, в 32-битный RGBA изображения каждый пиксель состоит из 4-х частей из

red = 8 bits 
green = 8 bits 
blue = 8 bits 
alpha = 8 bits 

Каждый из них может быть установлено в диапазоне от 0 до 255;

Итак, вы просто обрабатываете изображение как массив байтов и изменяете значения цветов каждого пикселя.

Image image = CreateImage(); 

for(int i = 0; i < image.size(); i++) 
    image[i] = RandomNumberBetween(0, 255); 

Или создать изображение из массива байтов

int byteArray[width * height * 4]; 

for(int i = 0; i < width * height * 4; i++) 
     image[i] = RandomNumberBetween(0, 255); 

Image image = createImageFromByteArray(byteArray); 

Вы также можете создать простую сцену OPENGL и сделать это в шейдере.

float rand(vec2 co){ 
    return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); 
} 

void main(void){ 
    gl_FragColor = rand(gl_TexCoord[0].xy); 
} 
+0

Спасибо за ответ ... его было некоторое время, так как я сделал какой-либо java и им новый для android dev, так жаль глупых вопросов, но это будет работать для android, я не вижу ничего на сайте Android, говоря, что использование изображений доступно на SDK android SDK ... похоже, что opengl будет работать, но я не думаю, что я готов к этому. есть ли другие способы заставить это работать, или вы могли бы указать некоторые документы, которые объясняют использование изображений с помощью андроида? – BOB

+1

@BOB, прежде чем вы начнете задавать конкретные вопросы, это может помочь вам полностью ознакомиться с документацией разработчика Android. Там много полезной информации. Простой поиск «изображения» в документации SDK скажет вам, что есть вещь, называемая ImageView, которая отображает изображения. –