Intereting Posts
Android применяет стиль к пользовательскому TextView Где файл данных приложения фактически хранится на устройстве Android? Android SDK Manager – вам нужно установить все платформы Android? Unsatisfiedlinkerror с обновлением Android 5.0.1 Пример SSO в Facebook не работает – «Произошла ошибка. Пожалуйста, повторите попытку позже" Прокси-приложение не может запрашивать разрешения на публикацию без предварительной установки Включение функции увеличения размера экрана в приложении Phonegap Android не влияет Пауза / Резюме HTTP-подключение скачать TextView внутри галереи Как исключить дублирование C общих библиотек (.so) в Multi-Project Android Build? Android. Ошибка записи: EPIPE (Broken pipe) при использовании Process Android.database.sqlite.SQLiteDatabase.rawQuery () не обновляет столбец DATETIME с помощью функции SQLite datetime () Geocoder.getFromLocation бросает IOException на эмулятор Android Как написать собственное контекстное меню для копирования и вставки? Отображение нелинейной структуры данных, такой как дерево в Android View

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

У меня есть свиток. Я выполнил 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();