Ich kenne mehrere Möglichkeiten, um Standortwerte einer Ansicht zu erhalten.Android: Gibt es eine Möglichkeit, die neueste Position von View nach TranslateAnimation zu erhalten?
getLocationOnScreen()
getLocationInWindow()
getLeft()
jedoch keiner von ihnen gibt tatsächlich die aktuelle Position der Ansicht I von startAnimation() -Methode bewegt, sondern nur die ursprüngliche Lage.
So, jetzt machen wir eine Ansicht, die sich um 10 Pixel auf jeden Klick nach rechts bewegt (Ich unterlasse das Layout, da Sie einfach jede Ansicht in Ihrem Haupt-XML platzieren und onClickListener geben können).
public class AndroidTestActivity extends Activity implements OnClickListener {
LinearLayout testView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
testView = (LinearLayout) this.findViewById(R.id.test);
testView.setOnClickListener(this);
}
public void onClick(View v) {
int[] pLoS = new int[2];
testView.getLocationOnScreen(pLoS);
TranslateAnimation move = new TranslateAnimation(pLoS[0], pLoS[0] + 10, 0f, 0f);
move.setFillAfter(true);
move.setFillEnabled(true);
testView.startAnimation(move);
}
}
Wie Sie sehen, das nicht funktioniert, wie ich gedacht, da getLocationOnScreen() liefert immer den gleichen Wert (in meinem Fall, 0), und doen't den Wert widerspiegeln ich in TranslateAnimation verwendet ..
Irgendeine Idee?
Vielen Dank. – Quv