Seine ziemlich einfache Sache, die ich tue, ich habe es vorher getan, aber jetzt läuft es nicht so, wie ich erwartet habe. Lassen Sie mich erklären Anyways kurz, was ich zu tun versuchen, und was ich bin immer ::onTouch gibt seltsame Berührungspunkte Android
Szenario :: Ich habe einen RelativeLayout
, in dem ein ImageView
platziert ist, jetzt habe ich die touchlistener
wie folgt festgelegt: imageview.setOnTouchListener(this);
Es hat mich gebeten, die onTouch(View v,MotionEvent event)
Funktion außer Kraft zu setzen, die ich habe ... und in der Action_Move
bekomme ich die x und y und fügen sie sie und oberen Ränder nach links, auf diese Weise habe ich das Bild bewege.
Sonderbare Problem: Mein ImageView
ist bewegend, aber mit einem sehr auffällig schütteln, wie wenn ich in der richtigen Richtung bewege, ImageView
nach rechts gehen, sondern auf dem Weg nach links kommt es zurück, so dass es aussieht wie Bild ist nicht stabil, es vibriert .. etwas wie das .. Ich gebe die x und y die ich während log
bekommen ... hoffe, das gibt Ihnen die Idee.
ACTION_DOWN[#0(pid 0)=160,233] Going right..
ACTION_MOVE[#0(pid 0)=160,233] ////
ACTION_MOVE[#0(pid 0)=160,233] //
ACTION_MOVE[#0(pid 0)=174,231] //
ACTION_MOVE[#0(pid 0)=176,233] //
ACTION_MOVE[#0(pid 0)=196,232] //
ACTION_MOVE[#0(pid 0)=152,232] // suddenly i got 152 as location for x... image comes back
ACTION_MOVE[#0(pid 0)=167,232] // again started to go right
ACTION_MOVE[#0(pid 0)=180,233] // going right
ACTION_MOVE[#0(pid 0)=173,233] // again comes a little back
ACTION_MOVE[#0(pid 0)=187,232] // same thing goes till end..
ACTION_MOVE[#0(pid 0)=159,232]
ACTION_MOVE[#0(pid 0)=174,231]
ACTION_MOVE[#0(pid 0)=177,233]
ACTION_MOVE[#0(pid 0)=189,231]
ACTION_MOVE[#0(pid 0)=155,232]
ACTION_MOVE[#0(pid 0)=171,231]
ACTION_MOVE[#0(pid 0)=183,230]
ACTION_MOVE[#0(pid 0)=161,234]
ACTION_MOVE[#0(pid 0)=171,233]
ACTION_MOVE[#0(pid 0)=174,230]
ACTION_MOVE[#0(pid 0)=183,230]
ACTION_MOVE[#0(pid 0)=162,234]
ACTION_MOVE[#0(pid 0)=170,233]
ACTION_MOVE[#0(pid 0)=176,233]
ACTION_MOVE[#0(pid 0)=165,233]
ACTION_MOVE[#0(pid 0)=175,232]
ACTION_MOVE[#0(pid 0)=163,233]
ACTION_MOVE[#0(pid 0)=171,233]
ACTION_MOVE[#0(pid 0)=167,233]
ACTION_MOVE[#0(pid 0)=172,232]
ACTION_MOVE[#0(pid 0)=178,232]
ACTION_MOVE[#0(pid 0)=158,234]
ACTION_MOVE[#0(pid 0)=170,234]
ACTION_MOVE[#0(pid 0)=170,232]
ACTION_MOVE[#0(pid 0)=177,231]
ACTION_MOVE[#0(pid 0)=157,234]
ACTION_MOVE[#0(pid 0)=160,234]
ACTION_MOVE[#0(pid 0)=169,232]
ACTION_MOVE[#0(pid 0)=165,233]
ACTION_MOVE[#0(pid 0)=167,233]
ACTION_MOVE[#0(pid 0)=159,233]
ACTION_UP [#0(pid 0)=161,233]
XML-Code für RelativeLayout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#99000000">
<ImageView
android:id="@+id/imageview"
android:layout_width="400dp"
android:layout_height="400dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="100dp"
android:scaleType="matrix" />
</RelativeLayout>
Also, das ist der höchste, ich meine Frage erklären konnte, immer noch, wenn Sie etwas brauchen, lassen Sie es mich wissen.
Update :: -Code zum Bewegen der ImageView
in seinem Container d.h RelativeLayout
:
case MotionEvent.ACTION_MOVE:
LayoutParams params = (LayoutParams) imageview.getLayoutParams();
params.leftMargin = params.leftMargin + x;
params.topMargin = params.topMargin + y;
imageview.setLayoutParams(params);
break;
"Jede Bewegung wird auch ein etwas anderes OnTouchEvent auslösen, was eine andere Bewegung verursacht - diese Rekursion gibt Ihnen einen" vibrierenden "Effekt." Bitte erläutern Sie es ein wenig, ein Link/Dokumentation wäre sehr hilfreich, wo es im Detail geschrieben wurde ... – Farhan