package com.my;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class Draw extends Activity
{
/** Called when the activity is first created. */
boolean isRunning = true;
Button m_btn_start;
Button m_btn_stop;
int count = 0;
int max_count = 12;
Myview vw ;
Button button;
public void E(String str)
{
Log.e("sj", str);
}
public void D(String str)
{
Log.v("sj", str);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
// ����
//vw = new Myview(this);
//setContentView(vw);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
vw = new Myview(this);
m_btn_start = new Button(this);
m_btn_start.setText("start");
m_btn_stop = new Button(this);
m_btn_stop.setText("stop");
layout.addView(vw, new LinearLayout.LayoutParams(600,600));
layout.addView(m_btn_start, new LinearLayout.LayoutParams(100,60));
layout.addView(m_btn_stop, new LinearLayout.LayoutParams(100,60));
m_btn_start.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
D("start");
isRunning = true;
}
});
m_btn_stop.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
D("stop");
isRunning = false;
}
});
// �ڵ鷯
mHandler.sendEmptyMessage( 0 );
} // onCreate //
Handler mHandler = new Handler()
{
public void handleMessage( Message msg )
{
max_count = 12;
if(isRunning)
{
if(count == max_count)
count = 0;
else
count++;
D("Handler"+count);
}
vw.invalidate(); // �ٽñ���
mHandler.sendEmptyMessageDelayed( 0 , 1);
}
};
protected class Myview extends View
{
public Myview(Context context)
{
super(context);
}
public void onDraw(Canvas canvas)
{
canvas.drawColor(Color.BLACK);
Paint Pnt = new Paint();
Pnt.setColor(Color.RED);
D("onDraw");
if(count==0)
{
canvas.drawCircle(250,25,20,Pnt); //1
}
if(count==1)
{
canvas.drawCircle(250,75,20,Pnt); //2
}
if(count==2)
{
canvas.drawCircle(250,125,20,Pnt); //3
}
if(count==3)
{
canvas.drawCircle(250,175,20,Pnt);//4
}
if(count==4)
{
canvas.drawCircle(250,225,20,Pnt);//5
}
if(count==5)
{
canvas.drawCircle(250,275,20,Pnt);//6
}
if(count==6)
{
canvas.drawCircle(250,325,20,Pnt);//7
}
if(count==7)
{
canvas.drawCircle(250,375,20,Pnt);//8
}
if(count==8)
{
canvas.drawCircle(250,425,20,Pnt);//8
}
if(count==9)
{
canvas.drawCircle(250,475,20,Pnt);//8
}
if(count==10)
{
canvas.drawCircle(250,525,20,Pnt);//8
}
if(count==11)
{
canvas.drawCircle(250,575,20,Pnt);//8
}
if(count==12)
{
canvas.drawCircle(250,625,20,Pnt);//8
}
/*
canvas.drawCircle(250,25,20,Pnt); //1
canvas.drawCircle(250,75,20,Pnt); //2
canvas.drawCircle(250,125,20,Pnt); //3
canvas.drawCircle(250,175,20,Pnt);//4
canvas.drawCircle(250,225,20,Pnt);//5
canvas.drawCircle(250,275,20,Pnt);//6
canvas.drawCircle(250,325,20,Pnt);//7
canvas.drawCircle(250,375,20,Pnt);//8
canvas.drawCircle(250,425,20,Pnt);//9
canvas.drawCircle(250,475,20,Pnt);//10
canvas.drawCircle(250,525,20,Pnt);//11
canvas.drawCircle(250,575,20,Pnt);//12
canvas.drawCircle(250,625,20,Pnt);//13
//*/
}
}
}
중앙지점에서 밑으로 LED처럼 1~ 12 번의 빨간 원을 생성합니다. [LED막대처럼]
현재 소스는 1번 켜고, 2번켜고, 3번켜고.....12번 켜고, 다시 1번으로 돌아가는 형태입니다.
이 켜지는 걸 빠르게 해서 동시에 켜진것처럼 보이고 싶은데..
현실은 1번 켜지고..2번켜지고 하는게 눈에 보여서 그냥 빨간 원이 떨어지는 것처럼 보입니다..
이 문제를 어떻게 해결해야 할까요...
좀 더 빠르게 빨간원을 그릴 방법이 없을까요?




for(iii<count ,i++)
canvas.drawcircle(250,25+i*50,20,pnt)