質問内容
javaで描画プログラミングを勉強中です。
ネットの解説サイトを参考に記述しているのですが
MotionEvent.ACTION_UPのところでエラー(のような波線)が出まして(コード①)
結論から言うと、なんかいじって(波線をごっそり消したら)エラーが消えました(コード②)
直ったのでそれはそれでよかったのですが
厳密には、これが本当に正しいのかも判別できていません(たまたまエラーが消えただけ?)
■別の正しい書き方があるなら教えていただきたい。
■これはこれで(②の方)正しいのなら、何故①のお手本の方はエラーのような書き方をしたのか知りたい
コード①:お手本通りにやったらエラー
@Override public boolean onTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); switch(event.getAction()){ case MotionEvent.ACTION_DOWN: path.moveTo(x, y); invalidate(); break; case MotionEvent.ACTION_MOVE: path.lineTo(x, y); invalidate(); break; case MotionEvent.ACTION_UP: path.lineTo(x, y); invalidate(); break; } return true; }
コード②:適当にいじったらエラーが消えた
java
1 @Override 2 public boolean onTouchEvent(MotionEvent event) { 3 4 float x = event.getX(); 5 float y = event.getY(); 6 7 switch(event.getAction()){ 8 case MotionEvent.ACTION_DOWN: 9 path.moveTo(x, y); 10 invalidate(); 11 break; 12 case MotionEvent.ACTION_MOVE: 13 path.lineTo(x, y); 14 invalidate(); 15 break; 16 case MotionEvent.ACTION_UP: 17 break; 18 } 19 return true; 20 }
試したこと
エラー修正後は
case MotionEvent.ACTION_UPの中をごっそり削ったってことです。
そもそも画面から手を離したときは、何も処理しないので、
ACTION_MOVEと同じ記述があること自体がおかしいのでは?と思いまして。
そしたら案の定、エラーは消えたわけですが・・・。
ただ、今回(自分が参考にした)サイトだけが間違っているのかと、
いくつか他の参考サイトを色々見ても、やはりみなさん
ACTION_UPには「ACTION_MOVEと同じ内容を書いている」ものが散見されました。
(ただし、どのサイトも情報が古い)
こうなってくると、自分の修正コードが正しいのかどうかすら怪しくなっていきました。
これで正しいのか。あるいは本来の書き方はどうなのか、アドバイスお願いいたします。
補足情報(FW/ツールのバージョンなど)
AndroidStudio4.1.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/20 02:48 編集
2021/01/20 04:13