所以即時通訊設法使一個adroid應用程序繪製圓形流作爲touchevent發生。如果我在屏幕的左側繪製,它應該畫一個綠色的圓圈,如果它在右側,它應該繪製一個藍色的圓圈。該應用程序正在這樣做,但它會更改已繪製的所有圓圈的顏色。所以我做了一個Draw circle類和一個對象數組列表,將每個cricle作爲一個單獨的對象來處理,即使在一個Touchup事件之後,仍然無法工作。它的代碼如下改變顏色的顏色改變所有圓形顏色
private class Drawcirlce {
public Drawcirlce(Canvas c) {
// TODO Auto-generated constructor stub
for (Point point : points) {
if(flag==true)
c.drawCircle(point.x, point.y, 5, paint);
else
c.drawCircle(point.x, point.y, 5, p2);
}
invalidate();
}
/*for (Point point : points) {
if(flag==true)
mcan.drawCircle(point.x, point.y, 5, paint);
else
mcan.drawCircle(point.x, point.y, 5, p2);
}*/
}
public void onDraw(Canvas canvas) {
i++;
//Drawcirlce d=new Drawcirlce();
dc.add(new Drawcirlce(canvas));
Log.d(TAG, "i: " + i);invalidate();
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
if(point.x>200){
paint.setColor(Color.BLUE);
flag=true;
}
else{
p2.setColor(Color.GREEN);
flag=false;
}
points.add(point);
//dc.add(new Drawcirlce(mcan));
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
if(point.x>200){
paint.setColor(Color.BLUE);
flag=true;
}
else{
p2.setColor(Color.GREEN);
flag=false;
}
points.add(point);
//dc.add(new Drawcirlce(mcan));
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
任何一個知道aht即時通訊做錯了,或者如果有一種方法解決這個問題?
你有共享不完整的代碼,因此很難理解你的問題。我最好的猜測是你搞砸了國旗變量 – the100rabh