teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答内容の追記

2016/03/11 12:41

投稿

Aeona
Aeona

スコア396

answer CHANGED
@@ -1,3 +1,45 @@
1
+ 追記しました。
2
+
3
+ ```java
4
+ public class MainActivity extends AppCompatActivity {
5
+
6
+ GestureDetector mGestureDetector;
7
+ @Override
8
+ protected void onCreate(Bundle savedInstanceState) {
9
+ super.onCreate(savedInstanceState);
10
+ setContentView(R.layout.activity_main);
11
+
12
+ // タップなしでonTouchEventを発生させる
13
+ // デバッグなどで使用
14
+ long downTime = SystemClock.uptimeMillis();
15
+ long eventTime = SystemClock.uptimeMillis() + 100;
16
+ MotionEvent event = MotionEvent.obtain(
17
+ downTime, eventTime, MotionEvent.ACTION_DOWN, 300, 300, 0);
18
+ this.onTouchEvent(event);
19
+ }
20
+
21
+ @Override
22
+ public boolean onTouchEvent(MotionEvent event) {
23
+
24
+ float posX = event.getX();
25
+ float posY = event.getY();
26
+
27
+ Toast.makeText(getApplication(),
28
+ "タップしたョ\n"
29
+ + "座標( X:" + String.valueOf(posX).toString()
30
+ + ", Y:" + String.valueOf(posY).toString() + ")",
31
+ Toast.LENGTH_LONG).show();
32
+
33
+ return super.onTouchEvent(event);
34
+ }
35
+ }
36
+ ```
37
+
38
+ ```MotionEvent.obtain()```が見慣れないメソッドだったので調べてみました。
39
+ 普通は使用しなさそうなメソッドですね。
40
+ 動作するように組んでみたので宜しければどうぞ
41
+
42
+ ---
1
43
  Androidはjavaで作成できますが、PC上で実行するのと背後にある環境が全く違います。
2
44
 
3
45
  - Windowsなど汎用PC上で実行する時は、