読者です 読者をやめる 読者になる 読者になる

liguofeng29’s blog

個人勉強用ブログだっす。

Androidのイベント処理 - Callbackによるイベント処理

① Viewを継承してコンポーネントを作成

MainActivity.java
 
package com.example.liguofeng.followmeevent;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
/**
* 手をついてくるボールのVIEW
*/
public class DrawView extends View {
private float currentX = 50; // 座標X
private float currentY = 50; // 座標Y

// 筆定義
Paint p = new Paint();

public DrawView (Context context, AttributeSet set) {
super(context, set);
}

@Override
public void onDraw (Canvas canvas) {
super.onDraw(canvas);
// 筆の色瀬鄭
p.setColor(Color.RED);
// 円を描く
canvas.drawCircle(currentX, currentY, 15, p);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
this.currentX = event.getX(); // タッチしたX座標
this.currentY = event.getY(); // タッチしたY座標

// 再描画通知
this.invalidate();
// このイベント終了と通知
return true;
}
}


②作成したViewを配置する

activity_main.xml
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.example.liguofeng.followmeevent.DrawView
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>