Tôi biết nhiều cách để nhận giá trị vị trí của Chế độ xem.Android: Có cách nào để có được vị trí mới nhất của Chế độ xem sau khi TranslateAnimation không?
getLocationOnScreen()
getLocationInWindow()
getLeft()
Tuy nhiên, không ai trong số họ thực sự trả về vị trí hiện tại của chế độ xem tôi di chuyển bằng phương thức startAnimation(), nhưng chỉ vị trí ban đầu. Vì vậy, bây giờ chúng ta hãy tạo một View để di chuyển sang bên phải 10 pixel trên mỗi Click (tôi bỏ qua layout, vì bạn chỉ có thể đặt bất cứ khung nhìn nào trong XML chính của bạn và đưa nó lênClickClickener).
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);
}
}
Như bạn thấy, điều này không làm việc như tôi mong đợi, kể từ getLocationOnScreen() luôn trả về giá trị như nhau (trong trường hợp của tôi, 0), và doen't phản ánh giá trị tôi được sử dụng trong TranslateAnimation .. .
Bất kỳ ý tưởng nào?
Cảm ơn một nhóm. – Quv