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();
希望能自动绘图 但是失败了 请大家帮帮忙
你可以查下handler的使用方式
public void onDraw(Canvas canvas)
{
canvas.save();
p=new Paint(5);
canvas.drawCircle(x, y, 20, p);
invalidate();//加上这一行代码应该就可以了须要刷新屏幕}
这个却在一个Activity.你可以这样,把你所要绘制的东西都在View界面中实现。然后把View添加到main.xml中啊!