質問編集履歴

1

実現したいこと

2017/05/20 11:22

投稿

sjyrnt7710
sjyrnt7710

スコア13

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- OnTouchEventではなくOnTouchで座標取得したいですが反応しません
11
+ 下記のプログラムをjavaに直接レイアウト書かずに実現したいです。
12
12
 
13
13
  どうすればいいでしょうか
14
14
 
@@ -18,19 +18,41 @@
18
18
 
19
19
  import android.app.Activity;
20
20
 
21
+ import android.graphics.Color;
22
+
21
23
  import android.os.Bundle;
22
24
 
23
25
  import android.util.Log;
24
26
 
25
27
  import android.view.MotionEvent;
26
28
 
29
+ import android.view.SurfaceView;
30
+
27
31
  import android.view.View;
28
32
 
29
33
  import android.view.View.OnTouchListener;
30
34
 
35
+ import android.view.Window;
36
+
37
+ import android.widget.LinearLayout;
38
+
31
39
 
32
40
 
33
41
  public class MainActivity extends Activity implements OnTouchListener {
42
+
43
+
44
+
45
+ float x1=0;
46
+
47
+ float y1=0;
48
+
49
+ float x2=0;
50
+
51
+ float y2=0;
52
+
53
+ float x3=0;
54
+
55
+ float y3=0;
34
56
 
35
57
 
36
58
 
@@ -44,11 +66,49 @@
44
66
 
45
67
  super.onCreate(savedInstanceState);
46
68
 
69
+ // タイトルは無しで。
70
+
71
+ this.requestWindowFeature(Window.FEATURE_NO_TITLE);
72
+
73
+
74
+
75
+ // レイアウトを作って設定
76
+
77
+ LinearLayout layout = new LinearLayout(this);
78
+
47
- setContentView(R.layout.main);
79
+ this.setContentView(layout);
80
+
81
+
82
+
83
+
84
+
85
+ // テキストボックス表示する
86
+
87
+
88
+
89
+ // GLSurfaceViewを作る
90
+
91
+ final SurfaceView surfaceView = new SurfaceView(this);
92
+
93
+ surfaceView.setLayoutParams(new LinearLayout.LayoutParams(
94
+
95
+ LinearLayout.LayoutParams.MATCH_PARENT,
96
+
97
+ LinearLayout.LayoutParams.WRAP_CONTENT));
98
+
99
+ surfaceView.setOnTouchListener(this);
100
+
101
+ surfaceView.setBackgroundColor(Color.CYAN);
102
+
103
+ layout.addView(surfaceView);
48
104
 
49
105
  }
50
106
 
51
107
 
108
+
109
+ ////////////////////////////////////////////////////////////
110
+
111
+ // タッチされたイベントが全部こっちにくる
52
112
 
53
113
  public boolean onTouch(View v, MotionEvent event) {
54
114
 
@@ -60,15 +120,53 @@
60
120
 
61
121
  Log.d("TouchEvent", "X:" + event.getX() + ",Y:" + event.getY());
62
122
 
123
+ x1=event.getX();
124
+
125
+ y1=event.getY();
126
+
63
127
  break;
64
128
 
65
129
  case MotionEvent.ACTION_UP:
66
130
 
67
131
  Log.d("TouchEvent", "X:" + event.getX() + ",Y:" + event.getY());
68
132
 
133
+ x2=event.getX();
134
+
135
+ y2=event.getY();
136
+
69
137
  break;
70
138
 
71
139
  }
140
+
141
+
142
+
143
+ if(x1>x2){
144
+
145
+ x3=x1-x2;
146
+
147
+ }else{
148
+
149
+ x3=x2-x1;
150
+
151
+ }
152
+
153
+
154
+
155
+ if(y1>y2){
156
+
157
+ y3=y1-y2;
158
+
159
+ }else{
160
+
161
+ y3=y2-y1;
162
+
163
+ }
164
+
165
+
166
+
167
+ Log.d("TouchEvent", "X:" +x3);
168
+
169
+ Log.d("TouchEvent", "Y:" +y3);
72
170
 
73
171
 
74
172
 
@@ -78,11 +176,9 @@
78
176
 
79
177
  }
80
178
 
179
+ ###試したこと
81
180
 
82
181
 
83
- ###試したこと
84
-
85
- レイアウトを直接java内に書いてあるサンプルでは取得することができました。
86
182
 
87
183
 
88
184