2012-01-17 8 views
4

画面上をドラッグしたときに画像を移動したいのですが、ACTION_MOVEのxとyの値が正しくありません。私はACTION_MOVEにxとyの値を表示しました。それぞれの代替では、正しいxとyの値が出力されます。onTouchで正しいx y値を取得できませんでした

public boolean onTouch(View v, MotionEvent event) { 
    ImageView view = (ImageView) v; 
    float x=0; 
    float y=0; 

    switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 

    break; 

case MotionEvent.ACTION_UP: 

    break; 


    case MotionEvent.ACTION_MOVE: 
     x=event.getX(); 
     y=event.getY(); 
     System.out.println("x= "+x+" y="+y); 
     int width = 100, height = 100; 
     lp = new AbsoluteLayout.LayoutParams(width, height, (int) (x), (int) (y)); 

    break; 
    } 
    mLayout.updateViewLayout(view, lp); 

    return true; 
} 

これは私のコードです。そして、印刷出力は:

01-17 10:31:11.721: I/System.out(3983): x= 71.0 y=91.0 
01-17 10:31:11.746: I/System.out(3983): x= 102.0 y=24.0 
01-17 10:31:11.776: I/System.out(3983): x= 72.0 y=91.0 
01-17 10:31:11.806: I/System.out(3983): x= 103.0 y=24.0 
01-17 10:31:11.826: I/System.out(3983): x= 73.0 y=91.0 
01-17 10:31:11.851: I/System.out(3983): x= 104.0 y=24.0 
01-17 10:31:11.871: I/System.out(3983): x= 74.0 y=91.0 
01-17 10:31:11.896: I/System.out(3983): x= 105.0 y=24.0 
01-17 10:31:11.921: I/System.out(3983): x= 75.0 y=91.0 
01-17 10:31:11.941: I/System.out(3983): x= 107.0 y=24.0 
01-17 10:31:11.957: I/System.out(3983): x= 76.0 y=90.0 
01-17 10:31:11.976: I/System.out(3983): x= 109.0 y=24.0 
01-17 10:31:11.996: I/System.out(3983): x= 77.0 y=90.0 
01-17 10:31:12.026: I/System.out(3983): x= 110.0 y=24.0 
01-17 10:31:12.056: I/System.out(3983): x= 78.0 y=90.0 
01-17 10:31:12.101: I/System.out(3983): x= 111.0 y=24.0 
01-17 10:31:12.131: I/System.out(3983): x= 79.0 y=89.0 
01-17 10:31:12.186: I/System.out(3983): x= 112.0 y=24.0 
01-17 10:31:12.231: I/System.out(3983): x= 80.0 y=89.0 
01-17 10:31:12.276: I/System.out(3983): x= 113.0 y=24.0 
01-17 10:31:12.296: I/System.out(3983): x= 80.0 y=88.0 
01-17 10:31:12.316: I/System.out(3983): x= 114.0 y=24.0 
01-17 10:31:12.336: I/System.out(3983): x= 81.0 y=88.0 

代替点は正しいです。しかし、どうしていますか?どうすればこの問題を解決できますか?

+0

あなたは、xとyが正しくないと言って、「代替ポイントは正しい」と言います。 ??それは正しいか間違っていますか?尋ねる前にあなたの心を作ってください:) –

+0

これはx座標102から114に画面をドラッグしたときの出力です。しかし、他の値が代わりに来ています –

+0

問題が解決しました。私はビューにタッチリスナーを追加しました。それはいつでも再描画しています。私はレイアウトにタッチリスナーを追加しました。 –

答えて

1

このquestionの回答を確認すると、ビューには内蔵のタッチイベントが含まれている可能性があり、タッチイベントに干渉している可能性があります。あなたのビューに1つがあるかどうかを確認します。

+0

問題が解決しました....私はビューにタッチリスナーを追加しました。それはいつでも再描画しています。私はレイアウトにタッチリスナーを追加しました。ありがとうございました –

関連する問題