我试着写了一个,定义一个view,然后通过thread每隔1秒左右去draw这个圆圈, 下面是代码MyViewpackage wyf.ytl;import android.view.View; import android.graphics.Paint; import android.content.Context; import android.util.AttributeSet; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.RectF;public class MyView extends View { int iCycle = 0; //圆的半径10 int r = 10; // x,y坐标,320屏幕宽度,390屏幕高度,圆的直径20 int x = (320-2*r*0)/2; int y = (390-2*r*0)/2;
public MyView(Context context,AttributeSet attrs){ super(context,attrs); } public MyView(Context context){ super(context); }
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myView = new MyView(this); setContentView(myView);
new Thread(new GameThread()).start(); }
class GameThread implements Runnable{ public void run(){ while(!Thread.currentThread().isInterrupted()){ try{ Thread.sleep(1000); }catch(InterruptedException e){ Thread.currentThread().interrupt(); } myView.postInvalidate(); } } }
下面是代码MyViewpackage wyf.ytl;import android.view.View;
import android.graphics.Paint;
import android.content.Context;
import android.util.AttributeSet;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.RectF;public class MyView extends View {
int iCycle = 0;
//圆的半径10
int r = 10;
// x,y坐标,320屏幕宽度,390屏幕高度,圆的直径20
int x = (320-2*r*0)/2;
int y = (390-2*r*0)/2;
public MyView(Context context,AttributeSet attrs){
super(context,attrs);
}
public MyView(Context context){
super(context);
}
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
if(iCycle < 5){
iCycle++;
} else {
iCycle = 0;
}
RectF rf1 = new RectF(x-r*iCycle,y-r*iCycle,x+r+r*iCycle,y+r+r*iCycle);
canvas.drawOval(rf1, paint);
}
}package wyf.ytl;import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;public class Sample_2_8 extends Activity {
private MyView myView = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myView = new MyView(this);
setContentView(myView);
new Thread(new GameThread()).start();
}
class GameThread implements Runnable{
public void run(){
while(!Thread.currentThread().isInterrupted()){
try{
Thread.sleep(1000);
}catch(InterruptedException e){
Thread.currentThread().interrupt();
}
myView.postInvalidate();
}
}
}
}<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<wyf.ytl.MyView
android:id="@+id/myView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/></LinearLayout>