что такое получение и кеширование короткого времени анимации системы по умолчанию?

Я пытаюсь сделать кроссфейд, и в учебнике по разработчикам Android используется «animationDuration» в качестве продолжительности анимации. Предполагается ли, что эта «animationDuration» извлекается так, чтобы продолжительность анимации затухания соответствовала скорости процессора? Я новичок в программировании для Android, поэтому такие простые вещи мне все еще незнакомы.

Вот код:

открытый класс CrossfadeActivity расширяет активность {

private View mContentView;
private View mLoadingView;
private int AnimationDuration;

...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_crossfade);

    mContentView = findViewById(R.id.content);
    mLoadingView = findViewById(R.id.loading_spinner);

    // Initially hide the content view.
    mContentView.setVisibility(View.GONE);

    // Retrieve and cache the system's default "short" animation time.
    AnimationDuration = getResources().getInteger(
            android.R.integer.config_shortAnimTime);
} 

Вот класс анимации:

частное недействительное перекрестное затухание () {

// Set the content view to 0% opacity but visible, so that it is visible
// (but fully transparent) during the animation.
mContentView.setAlpha(0f);
mContentView.setVisibility(View.VISIBLE);

// Animate the content view to 100% opacity, and clear any animation
// listener set on the view.
mContentView.animate()
        .alpha(1f)
        .setDuration(AnimationDuration)
        .setListener(null);

// Animate the loading view to 0% opacity. After the animation ends,
// set its visibility to GONE as an optimization step (it won't
// participate in layout passes, etc.)
mLoadingView.animate()
        .alpha(0f)
        .setDuration(mShortAnimationDuration)   //???
        .setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                mLoadingView.setVisibility(View.GONE);
            }
        });

}


person BarryHub20    schedule 13.02.2014    source источник


Ответы (1)


Используйте android.R.integer.config_shortAnimTime константу.

int time = getResources().getInteger(android.R.integer.config_shortAnimTime);  

Также доступны константы config_longAnimTime, config_mediumAnimTime.

person ashakirov    schedule 23.05.2016