Intereting Posts
Получение заголовка ActionBar TextView с помощью AppCompat v7 r21 Мне нужно вызвать HttpURLConnection.disconnect после окончания использования Как вставить изображение в действие с помощью студии Android? Избегайте Android автоматически повторно добавлять мой фрагмент при изменении ориентации Разработка Android: наличие AsyncTask в отдельном файле класса Должна ли моя бизнес-логика быть в фрагменте или выше? Как заставить панель поиска Search Search заполнить всю панель действий? Android не может импортировать сервисы Google Play Возмещение покупки приложений на Android Android Streaming Video – соотношение сторон со звуком Как постоянная память firebase хранит локальные данные для моего приложения для Android Отмена system.img на устройстве Какая практика заключается в том, чтобы сделать http-звонки в android Android: Кинжал 2 и инъекция конструктора В Google App Engine я могу связать токен Google OAuth 2 и токен SACSID, который я использовал с помощью AccountManager 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();