В моем приложении экран желтый, когда мы начинаем.На ощупь синий круг нарисован в этом месте.Я хочу, чтобы мое приложение проверяло, когда экран полностью синий.Я попробовал это, добавив метод контроля, который проверяет экран в конце метода рисования.Все используемые переменные объявлены правильно.
Кажется, проблема в том, что массив пикселей, содержащий значения цвета экрана, не обновляется.Я обнаружил, что в любое время все значения в массиве равны значению желтого цвета.Но я не знаю, если проблема в растровом изображении или getPixels.
Что я делаю не так?
Я пытался сбросить как растровое изображение, так и пиксели в методе управления, прежде чем они переназначены, ноэто не сработало ...
public void control(){
bitmap = this.getDrawingCache(true);
bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
check = true;
for(int i=0; i<pixels.length;i++){
if(pixels[i] == coloryellow){
check = false;
break;
}
}
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
canvas.drawColor(Color.YELLOW);
paint.setColor(Color.BLUE);
for (Circle temp : circleList) {
canvas.drawCircle(temp.x, temp.y, temp.radius, paint);
}
control();
if(check){
canvas.drawText("Gewonnen",100,500, paint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event){
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
circleList.add(new Circle(event.getX(),event.getY(),screenX/8));
number++;
invalidate();
break;
}
return true;
}
}