Я разрабатываю приложение, в котором я хочу изменить текстовое представление после загрузки нескольких кадров, как и в первом текстовом представлении, будет по умолчанию, после того, как 4 кадра загрузит текстовое представление, должно измениться затем снова после 9 кадров загружать текстовый вид должен измениться. Как я могу это сделать?можно получить текущий номер кадра в андроидной анимации
1
A
ответ
1
Вы можете сделать это, переопределив selectDrawable(int idx)
метод AnimationDrawable
класс. Для этого Вам нужно создать пользовательский класс, который расширяет AnimationDrawable
объявляет интерфейс OnFrameChangeListener
и поднимает onFrameChanged()
метод, когда кадр изменен следующим образом:
общественного класса ExtendedAnimationDrawable расширяет AnimationDrawable {
public interface OnFrameChangeListener {
void onFrameChanged(int numOfFrame);
}
private OnFrameChangeListener mFrameChangeListener;
public ExtendedAnimationDrawable(AnimationDrawable aniDrawable) {
for (int i = 0; i < aniDrawable.getNumberOfFrames(); i++) {
this.addFrame(aniDrawable.getFrame(i), aniDrawable.getDuration(i));
}
}
public void setFrameChangeListener(OnFrameChangeListener frameChangeListener) {
this.mFrameChangeListener = frameChangeListener;
}
@Override
public boolean selectDrawable(int idx) {
boolean result = super.selectDrawable(idx);
if (mFrameChangeListener != null) {
mFrameChangeListener.onFrameChanged(idx);
}
return result;
}
}
Чем Вы можете использовать это примерно так:
View v ;
...
v.setBackgroundResource(R.drawable.animation_list);
ExtendedAnimationDrawable extendedAnimation = new ExtendedAnimationDrawable(
(AnimationDrawable) ContextCompat.getDrawable(context, R.drawable.animation_list));
extendedAnimation.setFrameChangeListener(new ExtendedAnimationDrawable.OnFrameChangeListener() {
@Override
public void onFrameChanged(int numOfFrame) {
// do your magic here
// for example
if (numOfFrame == 4) {
// change TextView #1
}
if (numOfFrame == 4 + 9) {
// change TextView #2
}
}
});
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
v.setBackgroundDrawable(extendedAnimation);
} else {
v.setBackground(extendedAnimation);
}
extendedAnimation.start();
Смежные вопросы
- 1. Как получить текущий номер кадра в AviSynth?
- 2. Vb.net Get GIF номер текущего кадра + остановить анимацию + воспроизведения анимации
- 3. Снег R: Получить текущий текущий номер узла
- 4. с помощью андроидной анимации-списка
- 5. Получить текущий номер версии `tzdata`
- 6. Получить текущий номер строки Java
- 7. Как получить текущий номер строки?
- 8. yii получить текущий номер страницы
- 9. Получить текущий номер страницы DataPager
- 10. Как получить номер кадра и размер кадра из wav-файла
- 11. PyQt: Получить текущий номер вкладки
- 12. Javascript получить текущий номер класса
- 13. Понимание анимации кадра SDL
- 14. CrossRider - можно ли проверить текущий номер версии?
- 15. Как получить номер кадра (mp4) в JAVA?
- 16. Почему текущий номер кадра не равен текущему номеру страницы?
- 17. Jerk в андроидной анимации при расширении вида
- 18. Плавное изменение текста в андроидной анимации
- 19. Selenium: Как узнать текущий номер кадра или значение?
- 20. SpriteSpin: как я могу найти текущий номер кадра
- 21. Как получить номер телефона устройства в андроидной активности
- 22. Получить текущий номер версии в Subclipse?
- 23. Получить текущий номер задания в make-файле
- 24. Как получить текущий номер страницы в GridMvc?
- 25. Как получить текущий номер страницы в msword
- 26. получить текущий номер подсказки в IPython
- 27. Рабочий код кадра анимации?
- 28. номер кадра возврата видео js?
- 29. Позиция анимации A-кадра
- 30. Получить текущий кадр UIView во время анимации
его работающий awesome thanks –