Conosco molti modi per ottenere i valori di posizione di una vista.Android: Esiste un modo per ottenere l'ultima posizione della vista dopo TranslateAnimation?
getLocationOnScreen()
getLocationInWindow()
getLeft()
Tuttavia, nessuno di loro in realtà restituisce la posizione corrente del Vista mi sono trasferito da startAnimation() metodo, ma solo la posizione originale.
Quindi, ora facciamo una vista che si sposta verso destra di 10 pixel su ciascun clic (sto omettendo il layout, dal momento che puoi semplicemente posizionare qualsiasi vista nel tuo XML principale e assegnarlo a 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);
}
}
Come potete vedere, questo non funziona come ho inteso, dal momento che getLocationOnScreen() restituisce sempre lo stesso valore (nel mio caso, 0), e doen't riflette il valore che ho usato in TranslateAnimation .. .
Qualche idea?
Thanks a Bunch. – Quv