2016-12-05 9 views
0

どうすればこのコードを1行にすることができますか?動的機能の中で左下を呼び出すことができます。メイク方法1つの機能または方法で左下の動きを下に移動しますか?

public class MyTouchListener implements View.OnTouchListener{ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     float x =moveOBJECT.getX(),y=moveOBJECT.getY(),h=moveOBJECT.getHeight(),w=moveOBJECT.getWidth(),ih=img.getHeight(),iw=img.getWidth(),val=15; 
     movement(v,x,y,h,w,ih,iw,val); 
     return true; 
    } 
    public void movement(View v,float x,float y, float h, float w, float ih, float iw,float val){ 
     if(v.getId()==R.id.buttonUP){ 
      moveOBJECT.setY((y >= 0) ?y - val : y); 
     }else if (v.getId()==R.id.buttonDOWN){ 
      moveOBJECT.setY((y + h< ih) ? y + val : y); 
     }else if (v.getId()==R.id.buttonLEFT){ 
      moveOBJECT.setX((x >= 0) ? x - val : x); 
     }else{ 
      moveOBJECT.setX((x + w < iw) ? x + val : x); 
     } 

    } 
} 
+0

btw、moveOBJECTはテキストビューです。 4つのボタンを使って4方向に移動しようとしています。誰かが私に、私はそれを1行または動的な機能で行うことができると教えてくれました。 – wynrar

+0

なぜそれを1行の関数として使用したいですか? – abbath

+0

教育目的のための@abbath。学ぶために。誰かが私にそれは1行で行うことができると私に言った。ただ好奇心から、そして私が学ぶように言ったように。 – wynrar

答えて

0

よく定義されたクラスはどれくらいですか?

VelocityTrackerあなたは一般的に何をしますか。

.addMovement(event)で動きを追加してから、getXVelocity()およびgetYVelocity()関数の大きさと符号で方向を判断できます。

あなたの質問の制約に違反しているようなことをやり遂げる必要があるため、タッチを自分自身で追跡したり追跡したりしてください。しかし、あなたはちょうどそれに触れるを供給し、簡単に

return (Math.abs(tracker.getXVelocity()) > Math.abs(tracker.getYVelocity())? 
((tracker.getXVelocity() > 0)?LEFT:RIGHT) 
:((tracker.getYVelocity() > 0)?UP:DOWN) 

または奇妙なものは何でも、あなたが思い付くナンセンス「私はそれが単一の行になりたい」を決定することができるはずです。

関連する問題