1

インターネットから収集した例があります。

public class MprojectActivity extends Activity {
    /** Called when the activity is first created. */
    ImageView itan2;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        itan2=(ImageView)findViewById(R.id.imageView18);

        itan2.setOnTouchListener( new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub


           if(event.getAction()==MotionEvent.ACTION_MOVE){

               RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams) itan2.getLayoutParams();

                    int x =(int)  event.getRawX();
                    int y =(int)  event.getRawY();

                    mParams.leftMargin =  x-236;
                    mParams.topMargin =  y-565;
                    itan2.setLayoutParams(mParams);


           }      
                return true;
            }
        });

                  }

} 

この例では、236 と 565 を x と y で減算します。これらの値は実際には何ですか。動的コーディングでそれらを見つける方法は?

4

2 に答える 2

1

相対的なレイアウトを作成するために使用されます。複雑なことは何もなく、非常に単純です。

x-236 は、画面の左上から 236 単位離れた x 軸上のポイントを設定していることを意味します。y-565 は、画面の左上から 565 単位離れた y 軸上のポイントを設定していることを意味します。

これらの 2 つの値と左上の値 (0,0) を使用して、画像を表示するレイアウトを作成します (この例では itan2 です)。

于 2014-05-28T09:07:03.920 に答える
0

あなたの質問を理解できるかどうかわかりません。編集してください。getRawX と getRawY について詳しく知りたい場合は、http ://developer.android.com/reference/android/view/MotionEvent.html をご覧ください。

public final float getRawX ()

API レベル 1 で追加 このイベントの元の生の X 座標を返します。画面上のタッチ イベントの場合、これは、ウィンドウとビューを含むように調整される前の、画面上のイベントの元の場所です。

getRawY() も同様

于 2013-06-07T04:13:12.483 に答える