Znam wiele sposobów na uzyskanie wartości lokalizacji widoku.Android: Czy jest jakiś sposób, aby uzyskać najnowszą pozycję widoku po Tłumaczeniu?
getLocationOnScreen()
getLocationInWindow()
getLeft()
Jednak żadne z nich nie zwraca rzeczywistej lokalizacji widoku Przenieśliłem metodą startAnimation(), ale tylko oryginalną lokalizację.
Teraz przejdźmy do widoku, który przesuwa się w prawo o 10 pikseli na każde kliknięcie (pomijam układ, ponieważ możesz po prostu umieścić dowolny widok w głównym pliku XML i nadać mu onClickListener).
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);
}
}
Jak widać, to nie działa jak zamierzałem, ponieważ getLocationOnScreen() zawsze zwraca tę samą wartość (w moim przypadku, 0), a doen't odzwierciedlać wartość użyłem w TranslateAnimation ..
Każdy pomysł?
Dzięki za banda. – Quv