在我的应用中,开始时屏幕为黄色。触摸时会在该位置绘制一个蓝色圆圈。我希望我的应用检查屏幕何时为全蓝。我通过添加一种控制方法来尝试此操作,该方法在draw方法的末尾检查屏幕。所有使用的变量均已正确声明。
问题似乎是保存屏幕颜色值的像素数组没有更新。我发现任何时候数组中的所有值都等于黄色值。但是,如果问题出在位图或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;
}
}