Анимация затухания в бесконечном просмотре просмотраAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Анимация затухания в бесконечном просмотре просмотра

Сообщение Anonymous »

Я столкнулся с действительно странным поведением в одном из моих приложений, и я действительно надеюсь, что вы, ребята, сможете дать мне некоторые намеки на то, как решить это. Несколько изображений и/или видео должны отображаться многократно в бесконечном слайд -шоу, которое пока работает довольно хорошо. Я достиг этого, внедрив «бесконечный» ViewPager. Это в основном отслеживает пользовательскую позицию элемента и многократно отображает те же фрагменты.

В дополнение к переходу слайдов по умолчанию приложение должно обеспечить перекрестный переход (слайды не движутся, только исчезают /исчезают). Это, взятое за себя, тоже работает. В основном он отключает движение страниц, добавляя перевернутый X -перевод на основе текущей позиции и ширины страниц.@Override
public Fragment getItem(int position) {

// Get the next position
// The ViewPager will increment the position continuously
// We will keep track of that, and will deliver the same slides in an
// endless loop
if (position >= slideList.size() - 1) {
position = 0;
}
else {
position++;
}

Slide newSlide = mySlidesList.get(position);

Fragment frag = new Fragment();
frag = ImageSlideFragment.newInstance(newSlide);
return frag;

}

@Override
public int getCount() {
return Integer.MAX_VALUE;
}
< /code>
Пользовательская анимация FADE: < /p>
private void performFadeTransition(View page, float position){

//------------------------------------------------------------------------------------
// position | what does it mean
//------------------------------------------------------------------------------------
// 0 | view is positioned in the center and fully visible to the user.
// -1 | view is positioned in the left and not visible to the user.
// 1 | view is positioned in the right and not visible to the user.
// >-1 & 0 & -1 && position = 0 && position < 1;

// current fade out, next fades in.
// Change the pages visibility, the nearer it is to the center, the more visible
// it gets.
if (isMovingOut || isMovingIn) {
page.setAlpha(1.0F - Math.abs(position));
page.setTranslationX(pageWidth * -position);
}

// If the translation has finished, we have to reset the non visible pages
// on the far left and far right. Otherwise their invisibility would collide
// when an other transition type is used afterwards
else {
page.setAlpha(1.0F);
page.setTranslationX(0);
}

}
< /code>
Проблема: < /strong>

Теперь странная часть. Когда приложение работает в течение некоторого времени, скажем, пару сотен повторений, анимация FADE начинает сбивать. Затухающие страницы больше не неподвижны, но начните немного дрожать. Кажется, что вычисленная X-перенос не достаточно точна. Слайд -переходы, с другой стороны, все еще работают хорошо. Поскольку заданное значение позиции казалось актуальным, поэтому я начал регистрировать страницы x-положения, что привело к этому:
E/TPT: ------------------
E/TPT: position: 1.0
E/TPT: page.getX() before: 334080.0
E/TPT: ------------------
E/TPT: position: 1.0
E/TPT: page.getX() before: 336000.0
E/TPT: ------------------
E/TPT: position: 1.0
E/TPT: page.getX() before: 337920.0
E/TPT: ------------------
E/TPT: position: 1.0
E/TPT: page.getX() before: 339840.0
E/TPT: ------------------
E/TPT: position: 1.0
E/TPT: page.getX() before: 341760.0
< /code>
Когда в отношении того, что ширина страниц составляет 1920px, кажется, что страницы «Новые» страницы X, кажется, каждый раз увеличиваются к 1920px. Это означает, что через некоторое время на страницы x-положение будет в миллионах. Есть ли у кого -нибудь идея, как я могу это исправить? У меня действительно нет идей здесь ...

Подробнее здесь: https://stackoverflow.com/questions/375 ... -viewpager
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»