public class TestActivity extends Activity {
FrameLayout layout;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new FrameLayout(this);
layout.setBackgroundColor(Color.WHITE);
setContentView(layout);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
final int x=(int) event.getX();
final int y=(int) event.getY();
Log.w("mess","this is new a view");
layout.addView(new CircleView(this, x, y));

layout.postInvalidate();

Thread t=new Thread(){
private int l=y;
public void run()
{
while(l>=0)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
layout.addView(new CircleView(TestActivity.this, x, l));
layout.postInvalidate();
l-=10;
}
}
};
t.start();
return super.onTouchEvent(event);
}
}
class CircleView extends View
{
int x,y;
Paint p;
CircleView(Context context,int x,int y)
{
super(context);
this.x=x;
this.y=y;
}
@Override
public  void onDraw(Canvas canvas)
{
canvas.save();
p=new Paint(5);
canvas.drawCircle(x, y, 20, p);
}
}
刚开始学android 看了从网上找来的画图代码   自己添加了这段线程代码Thread t=new Thread(){
private int l=y;
public void run()
{
while(l>=0)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
layout.addView(new CircleView(TestActivity.this, x, l));
layout.postInvalidate();
l-=10;
}
}
};
t.start();
希望能自动绘图       但是失败了    请大家帮帮忙

解决方案 »

  1.   

    失败有没有抛出异常。如果有抛出异常,请把异常信息发出来。不过在android里面,自己创建的线程无法更新UI界面,需要使用到handler.
    你可以查下handler的使用方式
      

  2.   

    楼主你在ondraw方法中须要更新图像
        public  void onDraw(Canvas canvas)
        {
            canvas.save();
            p=new Paint(5);
            canvas.drawCircle(x, y, 20, p);
            invalidate();//加上这一行代码应该就可以了须要刷新屏幕}
      

  3.   

    你这个弄错了吧!你应该既然继承了View,就应该在view中绘制!而你的postInvalidate();
    这个却在一个Activity.你可以这样,把你所要绘制的东西都在View界面中实现。然后把View添加到main.xml中啊!