ITGenerations
안드로이드 - 터치 본문
자바 클래스 추가 생성
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));
}
}
'프로그래밍 > 안드로이드특강' 카테고리의 다른 글
안드로이드 - intent (0) | 2018.01.24 |
---|---|
안드로이드 - 버튼, 새로운 창에 새로운 버튼 클릭 (0) | 2018.01.23 |
버튼상자생성 - 빨강, 녹색, 파랑 중 선택 (0) | 2018.01.23 |
버튼 yes, no (0) | 2018.01.23 |
계산기 소스 (0) | 2018.01.22 |