«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ITGenerations

안드로이드 - 터치 본문

프로그래밍/안드로이드특강

안드로이드 - 터치

ITGenerations 2018. 1. 23. 16:25

자바 클래스 추가 생성

package com.example.ryan.myapplication;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

/**
* Created by ryan on 2018. 1. 23..
*/

public class TouchView extends View {

private Paint paint = new Paint();
private Path path = new Path();

public TouchView(Context context, AttributeSet attrs){
super(context, attrs);


paint.setAntiAlias(true);
//선분을 매끄럽게 그리기 위하여 엔티 에일리어싱을 설정한다
paint.setStrokeWidth(10f);
//선분의 두께를 10으로 한다
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLUE);
paint.setStrokeJoin(Paint.Join.ROUND);
}

protected void onDraw(Canvas canvas){
canvas.drawPath(path,paint);
//현재 까이의 경로를 모두 그린다
}

public boolean onTouchEvent(MotionEvent event){
float eventX = event.getX();
float eventY = event.getY();
// 마우스가 터치된 위치를 얻는다

switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
path.moveTo(eventX,eventY);
return true;
//터치가 눌러지면 경로에 위치를 저장
case MotionEvent.ACTION_HOVER_MOVE:
path.lineTo(eventX,eventY);
break;
//터치가 떼어지면 경로에 직선그리기를 저장
case MotionEvent.ACTION_UP:
break;
default:
return false;
}
invalidate();
return true;

}



}



자바 메인

package com.example.ryan.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
setContentView(new TouchView(this,null));
}
}