我的绘图应用程序运行良好,但是当我想看到我的绘图时,我需要按下我的主页按钮并再次启动它。
我想知道为什么我的应用目前没有显示我的绘图。
public class MainActivity extends ActionBarActivity {
private MyView vw;
//정점 하나에 대한 정보를 가지는 클래스
public class Vertex {
Vertex(float ax, float ay , boolean ad) {
x= ax;
y= ay;
Draw= ad;
}
float x;
float y;
boolean Draw;
}
ArrayList<Vertex> arVertex;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
vw = new MyView(this);
setContentView(vw);
arVertex=new ArrayList<Vertex>();
}
protected class MyView extends View {
Paint mPaint;
public MyView(Context context) {
super(context);
//Paint 객체 미리 초기화
mPaint=new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setStrokeWidth(3);
mPaint.setAntiAlias(true);
}
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.LTGRAY);
/*정점을 순회하면서 선분으로 있는다.*/
for(int i=0;i<arVertex.size();i++) {
if(arVertex.get(i).Draw) {
canvas.drawLine(arVertex.get(i-1).x,arVertex.get(i-1).y,arVertex.get(i).x,arVertex.get(i).y, mPaint);
}
}
}
//터치 이동시마다 정점추가
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_DOWN) {
arVertex.add(new Vertex(event.getX(),event.getY(),false));
return true;
}
if (event.getAction()==MotionEvent.ACTION_MOVE) {
arVertex.add(new Vertex(event.getX(),event.getY(),true));
return true;
}
return false;
}
}
}
我想知道为什么我的应用程序目前没有显示我的绘图。 遗憾
答案 0 :(得分:0)
在invalidate()
方法中添加onTouchEvent
:
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction()==MotionEvent.ACTION_DOWN) {
arVertex.add(new Vertex(event.getX(),event.getY(),false));
invalidate(); // <-- Here
return true;
}
if (event.getAction()==MotionEvent.ACTION_MOVE) {
arVertex.add(new Vertex(event.getX(),event.getY(),true));
invalidate(); // <-- And here
return true;
}
return false;
}