Viewについて調べてみる
ViewSample.java
package jp.android.viewsample; import android.app.Activity; import android.os.Bundle; public class ViewSample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); setContentView(new MyView(this)); //1,一先ず、R.layout.mainをコメントアウトして //MyViewを設定、クラスが無いとEclipseに起こられるので、補完してもらう } }
package jp.android.viewsample; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class MyView extends View { public MyView(Context context){ super(context); //2,コンストラクタでViewに引数渡す } protected void onDraw(Canvas canvas) { super.onDraw(canvas); //3,こっちも渡す。ってめんどくさいな、もうw Paint paint = new Paint(); canvas.drawColor(Color.WHITE); paint.setColor(Color.BLUE); paint.setAntiAlias(true); canvas.drawCircle(150, 150, 100, paint); } }
っと、このあとonTouchEvent等といろいろ続くが、読み飛ばし^^;
MyView.java
android.os.Handlerって何だろう?
package jp.android.viewsample; import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.View; public class MyView extends View { android.os.Handler handler = new android.os.Handler(); public MyView(Context context){ super(context); Timer timer = new Timer(false); timer.schedule(new TimerTask(){ public void run(){ handler.post(new Runnable(){ public void run(){ invalidate(); } }); } },0,1000); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); canvas.drawColor(Color.WHITE); paint.setColor(Color.BLUE); float cx = (float)Math.random() * 200 + 15; float cy = (float)Math.random() * 300 + 15; canvas.drawCircle(cx, cy, 30, paint); } }