Intereting Posts
Открыть локальный файл Html в Webview – Android Создайте настоящий заставку Простая проблема с адаптером, текст + изображение в spinner. Java, Android Можно ли отключить прокрутку на ViewPager Обнаруживать касание EditText, но не прерывать его? Является ли OpenGL на Android аккумулятором? Разницу и когда использовать getApplication (), getApplicationContext (), getBaseContext () и someClass.this Ошибка "не имеет публичного TestCase (имя строки) или TestCase () в тесте Junit Поддержка Robospice / Retrofit фоновой службы, доступ к базе данных Могу ли я создать приложение для Android в качестве отладки, но подписать с хранилищем ключей Как удалить Android Studio и Android SDK? Каков наилучший способ использования общих настроек между действиями Как остановить автоматическую капитализацию в поле ввода текста html на телефоне android / samsung? Почему плохой загрузчик в Android Как передать изображение по умолчанию предыдущей активности, если изображение не выбрано

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

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

Solutions Collecting From Web of "Уменьшить скорость плавного прокрутки в режиме прокрутки"

Вот решение с таймером, который использует 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();