繁体   English   中英

Android绘图

[英]Android Drawing

我正在学习如何使用Android进行编码,但是我仍然对bby的工作方式感到困惑,我能够创建简单的绘制,例如圆圈和填充物,但现在我想以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(); 
        } 
     }

公共类DrawCircle扩展了View {Paint p1 = new Paint(); Paint p2 =新的Paint(); 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]);
    }

}

}

如果您想绘制相同的圆,并且其颜色会随时间变化(如您提到的每2秒),则应使用处理程序

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM