Android 는 터치 로 화면 에 사각형 효 과 를 동적 으로 그립 니 다.
화면 에 손가락 으로 영역 을 그 려 서 원 하 는 영역 좌 표를 되 돌려 줍 니 다.
기술 실현:
사용자 정의 View,붓 및 대응 하 는 파 라 메 터 를 설정 하고 onTouchEvent()리 셋 함수 에서 터치 사건 을 판단 합 니 다.직사각형 도형 을 그리다.
코드:
사용자 정의 뷰:
public class GameView extends View {
// Paint
private Paint mPaint = null;
private int StrokeWidth = 5;
private Rect rect = new Rect(0,0,0,0);//
public GameView(Context context){
super(context);
//
mPaint = new Paint();
mPaint.setColor(Color.RED);
//
// new Thread(this).start();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//
mPaint.setAntiAlias(true);
canvas.drawARGB(50,255,227,0);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(StrokeWidth);
mPaint.setColor(Color.GREEN);
mPaint.setAlpha(100);
//
canvas.drawRect(100, 200, 400, 200 + 400, mPaint);
mPaint.setColor(Color.RED);
canvas.drawRect(rect,mPaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
rect.right+=StrokeWidth;
rect.bottom+=StrokeWidth;
invalidate(rect);
rect.left = x;
rect.top = y;
rect.right =rect.left;
rect.bottom = rect.top;
case MotionEvent.ACTION_MOVE:
Rect old =
new Rect(rect.left,rect.top,rect.right+StrokeWidth,rect.bottom+StrokeWidth);
rect.right = x;
rect.bottom = y;
old.union(x,y);
invalidate(old);
break;
case MotionEvent.ACTION_UP:
break;
default:
break;
}
return true;// ,
}
}
호출 할 때 onCreate()함수 에 직접 추가 하면 됩 니 다.
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gameView = new GameView(this);
addContentView(gameView);
필요 에 따라 사용자 정의 클래스 에 권 정 된 범 위 를 되 돌려 주 는 함 수 를 추가 할 수 있 습 니 다.ps:주의해 야 할 것 은 손가락 이 이동 할 때 화면 이 사각형 을 업데이트 해 야 할 때 원리 적 으로 원래 의 사각형 을 삭제 하고 새로운 사각형 을 그 리 는 것 입 니 다.하지만 중 공 직사각형 두께 의 존재 로 인해
남아 있 는 상황 이 발생 할 수 있 으 므 로 이때 border 두 께 를 빼 면 이 문 제 를 해결 할 수 있다.
Rect old = new Rect(rect.left,rect.top,rect.right+StrokeWidth,rect.bottom+StrokeWidth);
효과 그림:위 에서 말 한 것 은 편집장 이 소개 한 안 드 로 이 드 가 터치 로 화면 에 사각형 효 과 를 동적 으로 그 리 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.편집장 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.