public class Test extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
private static class MyView extends View{ public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

protected void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawText("aaa", 0, 0, null);
}
}
}程序最后运行得到的结果是:意外停止,强制关闭!
查Log显示是:在canvas.drawText("aaa", 0, 0, null);这一句出现空指针异常。
请哪位高人指教一下,为什么?
还就请指教一下onDraw()方法的调用过程,谢谢!

解决方案 »

  1.   

    private class MyView extends View{
      

  2.   

    private class MyView extends View{
    这样也是不行的,也会出现同样的问题的!
      

  3.   

    ...不指定paint就画啊
    private Paint mPaint = new Paint ();
    ondraw:
    canvas.drawText("aaa", 0, 0, mPaint );
      

  4.   

    不指定Paint就不能画啊?
    不指定Paint也能画的!
      

  5.   

    paint不能为null。canvas.drawBitmap()中的paint可以为null,canvas.drawText()中不可以。
      

  6.   


     onDraw中drawText()必须设置画笔,默认画笔颜色为黑色,所以你就算加了Paint 不设置字体画笔颜色 同样画不出字体的
    所以 楼主上面的代码:Paint paint=new Paint();
    paint.setColor(Color.Red);
    canvas.drawText("awefaw",10,10,paint);
    希望能给楼主一定帮助
      

  7.   

    对,要给个画笔,你那个View 加static   不怎么好吧