У меня есть этот ImageButton. Я хочу, чтобы он начал анимацию в определенное время. Я просмотрел документацию по Android и нашел setStartTime(long startTimeMillis).Как я могу запустить Android AlphaAnimation в определенное время?
Это то, что я придумал:
private ImageButton imgBtn;
// Other variables and stuff..
//And inside to onCreate void, I have set the button listener.
imgBtn.setOnClickListener(tappClickHandler);
Button.OnClickListener imgClickHandler = new Button.OnClickListener() {
@Override
public void onClick(View v) {
new AsyncTaskExample().execute("");
}
};
private class AsyncTaskExample extends AsyncTask<String, Integer, Integer> {
protected void onPreExecute(){
AlphaAnimation alDown = new AlphaAnimation(1.0f, 0.1f);
alDown.setDuration(200);
alDown.setFillAfter(true);
imgBtn.startAnimation(alDown);
}
@Override
protected Integer doInBackground(String... params) {
Date test = new Date();
return (test.getTime()/1000) + 5;
}
protected void onProgressUpdate(Integer... progress) {
}
protected void onPostExecute(Integer result) {
Date clientTime = new Date();
AlphaAnimation alUp = new AlphaAnimation(0.1f, 1.0f);
alUp.setDuration(200);
alUp.setStartTime(result);
imgBtn.setAnimation(alUp);
Log.d(LOG_TAG, "Time to start: " + imgBtn.getAnimation().getStartTime());
Log.d(LOG_TAG, "Current device time: " + clientTime.getTime()/1000);
}
}
ТЕКУЩ гравюр:
02-13 20: 40: 42,634: D/tappWin (3504): Время начала: 1329162048
02-13 20: 40: 42,634 D/tappWin (3504): время на устройство: 1329162042
imgBtn делает первую анимацию, но не второй ..
При использовании [startAnimation()] (http://developer.android.com/reference/android/view/View.html#startAnimation (android.view. анимация.Animation)) он отлично работает. – kristianfroelund