Я столкнулся с действительно странным поведением в одном из моих приложений, и я действительно надеюсь, что вы, ребята, сможете дать мне некоторые намеки на то, как решить это. Несколько изображений и/или видео должны отображаться многократно в бесконечном слайд -шоу, которое пока работает довольно хорошо. Я достиг этого, внедрив «бесконечный» 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
Анимация затухания в бесконечном просмотре просмотра ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1745266316
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-положение будет в миллионах. Есть ли у кого -нибудь идея, как я могу это исправить? У меня действительно нет идей здесь ...
Подробнее здесь: [url]https://stackoverflow.com/questions/37529219/glitching-fade-animation-at-endless-viewpager[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия