Android绘图

时间:2011-02-05 18:37:33

标签: android testing

我正在学习如何使用Android进行编码,但我仍然感到困惑,因为它的工作方式,我能够创建简单的绘制,如圆圈和东西,但现在我想多次画圆圈,延迟2秒。如果专家可以帮助我改进我的代码并将这些东西放在正确的位置,我将非常感激

public class ColorChanges extends Activity {
DrawCircle dc;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
                drawCircleToCanvas() 

}

void drawCircleToCanvas() 
 { 
    final Handler handler = new Handler() {            
     public void handleMessage(Message msg) {               
          dc.postInvalidate();              
          }            
     };     
     Thread updateUI = new Thread() 
     {              
         public void run() {             
                dc = new DrawCircle(this);  //this line does not work
                dc.setBackgroundColor(Color.WHITE);     


                setContentView(dc);

             handler.sendEmptyMessage(0);               

             }           
         };           
         updateUI.start(); 
        } 
     }

public class DrawCircle extends View {     Paint p1 = new Paint();     Paint p2 = new Paint();     绘制p3 = new Paint();

Paint pAll[] = new Paint[3];


public DrawCircle(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}
public DrawCircle(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    // TODO Auto-generated constructor stub
}

public DrawCircle(Context context) {
    super(context);

       p1.setStyle(Paint.Style.STROKE);
       p1.setColor(Color.GREEN);
       p1.setStyle(Paint.Style.FILL);

       p2.setStyle(Paint.Style.STROKE);
       p2.setColor(Color.BLUE);
       p2.setStyle(Paint.Style.FILL);

       p3.setStyle(Paint.Style.STROKE);
       p3.setColor(Color.YELLOW);
       p3.setStyle(Paint.Style.FILL);

       pAll[1] = p1;
       pAll[2] = p2;
       pAll[3] = p3;

    // TODO Auto-generated constructor stub
}

@Override  
public void onDraw(Canvas canvas) 
{     
    for (int i = 0; i < pAll.length;i++)
    {
     canvas.drawCircle(200, 200, 100, pAll[i]);
    }

}

}

1 个答案:

答案 0 :(得分:0)

如果你想要绘制相同的圆圈,其颜色随时间变化(你提到的每2秒),你应该使用Handler

为了创建计时器并在每次调用时切换绘制。 不要忘记在自定义视图中调用invalidate函数,因为此函数要求系统重绘屏幕。