안드로이드 개발 질문/답변
(글 수 45,052)
위의 그림과 같이 터치를 하면 가운데 작은 점부터 백/흑/백/흑 이런식으로 바꾸면서 커지고 한 13~4번정도 커지면 없어지도록
터치이벤트와 핸들러를 이용해 만들고 있는데요.
백/흑/백/흑 바뀌어가면서 커지기는 하는데 그림의 위에다가 덮어버려서 저런식으로 그려지지가 않네요.
코드를 첨부하오니 보시고 어디를 고쳐야 하는지 좀 알려주세요. 부탁드립니다.
private MyView vw;
ArrayList<Vertex> arVertex;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
vw = new MyView(this);
setContentView(vw);
arVertex = new ArrayList<Vertex>();
vw.mHandler.sendEmptyMessage(0);
}
// 정점 하나에 대한 정보를 가지는 클래스
public class Vertex {
Vertex(float x, float y, float radius, boolean Draw) {
this.x = x;
this.y = y;
this.radius = radius;
this.Draw = Draw;
}
float x;
float y;
float radius;
boolean Draw;
}
protected class MyView extends View {
Paint mPaint;
int value = 0;
Handler mHandler;
public MyView(Context context) {
super(context);
mPaint = new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(3);
mPaint.setAntiAlias(true);
mHandler = new Handler() {
public void handleMessage(Message msg) {
mHandler.sendEmptyMessageDelayed(0, 200);
if(arVertex.size()>0){
arVertex.add(new Vertex(arVertex.get(arVertex.size()-1).x, arVertex.get(arVertex.size()-1).y, arVertex.get(arVertex.size()-1).radius+2, true));
}
invalidate();
}
};
}
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.LTGRAY);
for (int i=0;i<arVertex.size();i++) {
if (arVertex.get(i).Draw) {
if(i%2 == 0)
mPaint.setColor(Color.BLACK);
else
mPaint.setColor(Color.WHITE);
canvas.drawCircle(arVertex.get(i).x, arVertex.get(i).y, arVertex.get(i).radius, mPaint);
}
}
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
arVertex.add(new Vertex(event.getX(), event.getY(), (float) 10, true));
return true;
}
return false;
}
} 



for(inti=arVertex.size()-1;i>=0;i--)