2016-10-26 2 views
0

я делаю следующий простой анимации в Android:Animation Android немедленно начать

<?xml version="1.0" encoding="UTF-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:repeatCount="infinite" 
    android:duration="2000" 
    android:interpolator="@android:anim/linear_interpolator"/> 

я называю анимации, как это:

@Override 
public void onWindowFocusChanged (boolean hasFocus) { 
    if (hasFocus) { 
     tvload.startAnimation(anim); 
    } 
} 

анимация начинается сразу в предварительно леденец устройств, но в леденец и зефир занимает около 1 секунды, чтобы начать. Эта анимация должна начинаться после намерения.

Есть ли способ сделать эту анимацию сразу же, вместо того, чтобы иметь 1-секундное время загрузки?

ответ

0

Я бы посоветовал View#post() метод. Он будет запускать код, который вы публикуете в следующем цикле потоков пользовательского интерфейса, который обычно, как только вид виден.

tvload.post(new Runnable() { 
    @Override 
    public void run() { 
    tvload.startAnimation(anim); 
    } 
}; 
+0

Я попробовал и не работает, это займет несколько секунд, спасибо! –