Intereting Posts
Пользовательский метод Android в контентном провайдере, чтобы получить количество записей в таблице? Не удалось подключиться к службе Google Analytics Android Zoom textview с изображением и текстом (содержание Html) в android Android – меняет ли идентификатор R.Resource во время выполнения Невозможно выполнить регистрацию с использованием модуля firebase auth Практические показатели проектирования Android? Как изменить цвет текста в SlidingTabLayout? Android – Как сделать это диалоговое окно предупреждений прокручиваемым? Как обмениваться данными между двумя ведущими в архитектуре MVP в Android? Ошибка импорта проекта Jar в Android Использование библиотеки Butter Knife для просмотра инъекций Как преобразовать TextView в ImageView в андроид Не удается запустить программу «xx / sdk // tools / emulator»: java.io.IOException: error = 2, нет такого файла или каталога RecyclerView вызывает проблемы при утилизации Как читать напоминания в Google Calendar

Уменьшить скорость плавного прокрутки в режиме прокрутки

У меня есть свиток. Я выполнил smooth-scroll.using smoothScrollBy (). Все работает отлично, но я хочу изменить продолжительность плавного прокрутки. Smooth-scroll происходит очень быстро, и пользователь не понимает, что произошло. Пожалуйста, помогите мне уменьшить скорость сглаживания.

Вот решение с таймером, который использует scrollTo, но вы также можете использовать scrollBy Android: HorizontalScrollView smoothScroll время анимации

Простой ответ – это просто заменить

scrollView.smoothScrollTo(0, scrollTo); 

с

 ObjectAnimator.ofInt(scrollView, "scrollY", scrollTo).setDuration(duration).start(); 

Где продолжительность – это время в миллисекундах, которое вы хотите принять

Попробуйте следующий код:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ValueAnimator realSmoothScrollAnimation = ValueAnimator.ofInt(parentScrollView.getScrollY(), targetScrollY); realSmoothScrollAnimation.setDuration(500); realSmoothScrollAnimation.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { int scrollTo = (Integer) animation.getAnimatedValue(); parentScrollView.scrollTo(0, scrollTo); } }); realSmoothScrollAnimation.start(); } else { parentScrollView.smoothScrollTo(0, targetScrollY); } 

Так я добился гладкой вертикальной прокрутки (например, фильмов). Это также позволяет пользователю перемещать прокрутку вверх и вниз и позволять ей продолжать прокрутку, когда они отпускают. В моем XML я инкапсулировал свой TextView внутри ScrollView под названием «scrollView1». Наслаждайтесь!

  final TextView tv=(TextView)findViewById(R.id.lyrics); final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1); Button start = (Button) findViewById(R.id.button_start); Button stop = (Button) findViewById(R.id.button_stop); final Handler timerHandler = new Handler(); final Runnable timerRunnable = new Runnable() { @Override public void run() { scrollView.smoothScrollBy(0,5); // 5 is how many pixels you want it to scroll vertically by timerHandler.postDelayed(this, 10); // 10 is how many milliseconds you want this thread to run } }; start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { timerHandler.postDelayed(timerRunnable, 0); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { timerHandler.removeCallbacks(timerRunnable); } }); 
 whichScreen = Math.max(0, Math.min(whichScreen, getBase().getDocumentModel().getPageCount()-1)); mNextScreen = whichScreen; final int newX = whichScreen * getWidth(); final int delta = newX - getScrollX(); //scroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta) * 2); scroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta)); invalidate();