У меня есть вкладка полноэкранного просмотра на вкладке галактики, содержащая две относительные раскладки, каждая из которых отображает от пяти до десяти просмотров изображений.
У меня возникают проблемы, когда я пытаюсь вставить один из view flipper viewso ut, а другой в «анимация» ничего не делает, а затем просто переключается.
Если я удаляю все, кроме одного, из представлений изображений в каждом из дочерних элементов представления, анимация будет в порядке.
Могу ли я как-то заставить его использовать смешанную версию изображения для анимации, или контейнер относительной компоновки вызывает проблему с производительностью?
Во время анимации флиппера ничего не должно происходить, поэтому я не могу понять проблему.
Спасибо
РЕДАКТИРОВАТЬ: Некоторые из проблемных кода: Возможно, это может указывать на области, вызывающие проблемы с производительностью?
У меня в onClick два вызова метода, которые используются для переключения назад в представления и вперед. Представление «генерируется» непосредственно перед добавлением в флиппер и переключением.
Итак, по нажатию кнопки «назад» (например) у меня (помимо прочего) ....
nextView = new RelativeLayout(this);
makeAView(selectedViewObjects, viewHolder2);
switchViewNow(-1);
currentView = nextView;
...
private void makeAView(ViewObjects vObjects, RelativeLayout nextView)
{
for(Object obj : vObjects.viewObjects)
{
if(obj instanceof Image)
{
addImageView(nextView, obj);
{
else
{
if(obj instanceof Anim)
{
addAnimView(nextView, obj);
}
}
Где Image - это пользовательская реализация View для отображения статического изображения, а Anim - пользовательская реализация View для отображения AnimationDrawable (цикл многокадрового изображения).
Далее у нас есть метод переключения:
private void switchViewNow(int direction)
{
if(direction == -1)
{
viewFrame.setInAnimation(AnimClass.inFromLeftAnimation(null));
viewFrame.setOutAnimation(AnimClass.outToRightAnimation(null));
viewFrame.showNext();
}
else
if(direction == 1)
{
viewFrame.setInAnimation(AnimClass.inFromRightAnimation(null));
viewFrame.setOutAnimation(AnimClass.outToLeftAnimation(null));
viewFrame.showNext();
}
}