Перелистывание экрана как куб

Прокрутка экрана и перелистывание в Cubase, Audition, Reaper

О настройках прокрутки мало говорят, хочу затронуть эту тему на примере таких программ, как Cubase, Adobe Audition, Reaper.

Итак, настройка прокрутки экрана

Принципиально, во всех программах существует 2 режима:

  • Когда прокручивается волна, а плей-хет или курсор стоит на месте.
  • И второй, когда плей-хет двигается, и экран постранично перелистывается.

Прокрутка экрана в Adobe Audition 1.5

Я долгое время, работая в Adobe Audition вообще не замечал этих нюансов, двигается волна, да и двигается, а как это происходит — не анализировал. Отмечал только, что очень удобно это реализовано в редакторе правки. Курсор двигается до конца вида, а потом перемещается в центр и остаётся по центру, после чего двигается экран.

Когда же я делаю правку на лету, то прокрутка экрана останавливается, а курсор начинает двигаться. И если я успею сделать правку, пока курсор не выйдет за окно просмотра, то экран возобновит своё движение.

Если же нет, то курсор уйдёт из поля зрения. Но в Audition курсор можно догнать, если вручную, мышкой протянуть выделение вправо и курсор снова появится в поле зрения. Это все очень удобно. По сути, есть постоянное движение, редактирование и я догоняю курсор самостоятельно.

Таким образом, мой взгляд сосредоточен в центре, так как прокручивается экран. Изредка он уходит вправо за движением курсора, но никогда влево.

Прокрутка экрана в Cubase

В Cubase по умолчанию включено перелистывание «страниц» или окон просмотра. Курсор доходит до конца просмотра, а потом перебрасывается на начало, влево и снова двигается вправо. Это принципиально, другое поведение.

Возникает вопрос, а когда какой вариант использовать?!

Первый вариант удобен, когда нужно не заморачиваться созерцанием волны, нужно просто слушать.

Например, в моем случае, когда я редактирую книги в редакторе Правки в Adobe Audition , то там я больше слушаю. Это не музыка, тактов нет, сильных долей также, на что тут смотреть?

Экран двигается, я слушаю, нахожу лишний дубль, вырезаю его. Или удаляю вздох, так как визуально очень хорошо видно. То есть, работа больше на слух. Здесь нужно двигаться вперёд, без того, (!) чтобы останавливаться и прослушивать снова фрагмент (!).

Плавная прокрутка экрана также удобна при сведении. Мы стоим на месте (образно) и слушаем музыку, её движение.

И есть второй вариант, когда работа предполагает:

  • прослушивание фрагментов,
  • редактирование фрагментов,
  • аранжировку,
  • нужно отслеживать такты, доли.

В таком случае лучше перелистывание. Экран статичен. Ты работаешь в пределах его видимости и редактируешь по тактам. Нет движения экрана, мы следим за курсором.

Думаю, что поэтому, по умолчанию в Cubase прокрутка экрана настроена на перелистывание .

Кстати, меняется перелистывание на прокрутку экрана в Cubase горячими клавишами Alt+C. Клавишей F — догоняем курсор, если он убежал за пределы экрана. Так что тут очень удобно реализована смена прокруток.

В Рипере перелистывание и прокрутка настраиваются правой кнопкой мышки по транспортной панели.

Там можно галочками выбрать плавную прокрутку или перелистывание. Или же назначить клавиши, если в том есть необходимость, часто менять стиль прокрутки. Можно назначить такие же клавиши, как в Cubase.

А В Adobe Audition 1.5 по умолчанию в окне правки — плавная прокрутка, а как будет в мультитреке — это настраивается через клавишу F4 — во вкладке «Мультитрек». Нужно поставить галочку «smooth автоскроллинг». Тогда будет плавная прокрутка в Сессии.

Вот такие мои соображения, относительно этих 2-х режимов работы: плавная прокрутка и перелистывание.

Источник

[Вопросы] Как сделать циклически прокручивающиеся экраны рабочего стола?

У меня задействованы все 5 экранов рабочего стола, виджетами, быстрым доступом и ярлыками. Всё разбито по тематическим группам. При прокрутке к последнему экрану, с редко используемыми приложениями, возвращаеться к первому экрану с основными программами очень не удобно, приходится пролистать аж четыре экрана. Как сделать цикличную (бесконечную) прокрутку экранов с переходом от пятого к первому, от первого к пятому.

Nikita Lukashev | из MIX

elecar | из Redmi 4X

DmitryDart Ответить | из Redmi Note 4

1686674208 | из Redmi Note 4

1671522059 | из Redmi Note 4

DmitryDart
Лаунчер скачивать не вариант. Не сторонник я этого

1636695816 | из MI 5

Xiaomi Comm APP

Получайте новости о Mi продукции и MIUI

Рекомендации

* Рекомендуется загружать изображения для обложки с разрешением 720*312

Изменения необратимы после отправки

Cookies Preference Center

We use cookies on this website. To learn in detail about how we use cookies, please read our full Cookies Notice. To reject all non-essential cookies simply click «Save and Close» below. To accept or reject cookies by category please simply click on the tabs to the left. You can revisit and change your settings at any time. read more

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.

Источник

Русские Блоги

Android плавный и трехмерный эффект перелистывания страниц

Здесь мы извлекаем связанный с рабочей областью код программы запуска Android и используем относительно простой код, чтобы показать, как программа запуска реализует несколько страниц и эффект переключения между разными страницами. Этот пример кода работает в SDK 2.1 и устанавливает размер экрана WVGA.

Во-первых, давайте посмотрим на эффект работы программы, чтобы получить некоторое представление о восприятии.

Рисунок 1: Эффект плавного движения

Рисунок 2: Трехмерный эффект перелистывания страниц

Затем давайте посмотрим на макет пользовательского интерфейса программы (например, View и ViewGroup). ContentView Activity — это main.xml в макете. Его содержание следующее:

Листинг 1.

Базовым классом FlatWorkspace является Workspace, который наследуется от ViewGroup и является контейнерным классом, который содержит три подчиненных представления, а подчиненный вид — ImageView. Три ImageView — это три страницы. Создание этих трех ImageView выполняется путем вызова функции initScreens Workspace в функции onCreate WorkspaceActivity. Код выглядит следующим образом:

Рисунок 3: Схема рабочего пространства и макета страницы

Чтобы три страницы достигли макета окна, показанного на приведенном выше рисунке, мы перегрузили функции onMeasure и onLayout рабочей области, сосредоточив внимание на коде onLayout. Функция onLayout вызывает функцию layoutScreens для завершения макета. LayoutScreens в FlatWorkspace реализован следующим образом:

Код в разделе child.layout выше размещает три страницы соответственно в системах координат X и Y ((0,0) — (ScreenWidth, ScreenHeight)) и ((ScreenWidth, 0) — (2 * ScreenWidth, ScreenHeight)) И ((2 * ScreenWidth, 0) — (3 * ScreenWidth, ScreenHeight)) в трех прямоугольных областях, где координаты верхней левой вершины и нижней правой вершины прямоугольной области используются для представления матрицы.

Пока мы завершили макет всей страницы окна.Размер макета страницы окна в три раза больше фактической видимой ширины экрана, поэтому для отображения всех страниц необходимо прокрутить страницу.

Давайте посмотрим, как программа скользит по странице и рисует их, когда пользователь перемещается касанием.

Прокрутка страницы может вызвать функцию scrollBy или ScrollTo представления, получить расстояние, пройденное пальцем пользователя в функции onTouchEvent рабочей области, а затем вызвать scrollBy (ее параметры — это расстояние, которое необходимо перемещать по осям X и Y), чтобы сделать представление рабочей области ( Это также ViewGroup) для перемещения пальца пользователя на расстояние.Конечно, до того, как View переместится, необходимо оценить, достаточны ли расстояние и скорость пальца пользователя для перемещения, чтобы уменьшить количество неправильных действий пользователя. Эта часть кода проста и не будет подвергаться глубокому анализу. Пожалуйста, взгляните на код сами.

Когда представление рабочей области вызывает scrollBy для прокрутки представления, это неизбежно приводит к тому, что представление становится недействительным и перерисовывается системой, поэтому для рисования дочернего представления (ImageView) вызывается его функция dispatchDraw. Ему нечего рисовать. Таким образом, нет необходимости заботиться о функции onDraw в Workspace. Функция dispatchDraw вызовет drawScreens (холст) для рисования дочернего представления. Давайте посмотрим на реализацию FlatWorkspace:

Ширина и высота холста здесь — это размер видимого диапазона экрана (например, размер 320 × 480 экрана HVGA), а макет трех вложенных изображений ImageView должен превышать диапазон экрана, а часть, которая находится за пределами видимого диапазона экрана, не будет отображаться. . Эта функция рисования трех вложенных изображений ImageView очень важна и является ключом к созданию специальных эффектов, таких как перелистывание страниц куба. FlatWorkspace обеспечивает эффект плавного скольжения, поэтому мы напрямую рисуем три вложенных ImageView. Если вы хотите добиться эффекта куба, при рисовании трех вложенных ImageViews, вы должны сделать их трехмерным эффектом при их рисовании. В android мы можем использовать вышеупомянутый класс Camera Реализуется поворотом на определенный угол по оси Y.

Цель программы для пользователя для выполнения операции перемещения касанием — позволить пользователю выбрать страницу. В соответствии с приведенной выше реализацией, когда пользователь, наконец, поднимает палец, переключение страниц будет не очень полным, но останется между двумя страницами, как на рисунке 1. . Поэтому, когда пользователь поднимает палец, программе необходимо определить, как далеко перейти к следующей полной странице, а затем позволить рабочему пространству снова переместиться на это расстояние, чтобы полностью переключиться на следующую страницу. В процессе этого движения, чтобы дать пользователю ощущение плавности, вы не можете перемещать это расстояние сразу, но вам нужно дать определенный временной интервал, чтобы постепенно перемещаться на месте в течение этого периода времени, поэтому здесь мы используем метод класса Scroller для достижения Двигайтесь постепенно. Конкретный процесс состоит в том, чтобы определить, какую страницу следует отрегулировать, когда пользовательское прикосновение обнаруживается в функции onTouchEvent рабочей области , а затем вызовите snapToScreen (targetScreen), чтобы перейти к желаемой цели. Page, а затем он вызывает scrollToScreen (screen), чтобы позволить представлению Workspace выполнить необходимую прокрутку.Реализация этой функции в FlatWorkspace выглядит следующим образом:

Основное внимание здесь уделяется коду в части mScroler.startScroll, который позволяет представлению Workspace перейти на следующую целевую страницу в течение периода времени Math.abs (deltaX) * 2. Distance), внимательно изучите этот расчет deltaX, я не буду здесь вдаваться в подробности. Этот mScroller.startScroll не приведет к немедленному перемещению рабочей области, это только приведет к тому, что текущее представление станет недействительным и перерисовывается. Когда рабочее пространство вызывается его родительским представлением для рисования, его computeScroll Функция будет вызвана, поэтому в этой функции Workspace вызовет функцию scrollTo для фактического движения. код показан ниже:

Итак, мы рассказали, как добиться всего рабочего механизма Workspace и эффекта плавного движения. Поговорим о том, как добиться эффекта трехмерного перелистывания страниц.

Из предыдущего анализа мы видим, что эффект трехмерного перелистывания страниц может быть завершен путем переписывания рисунка трех подчиненных ImageView на основе эффекта плавного перелистывания страниц. В то же время видно, что процесс работы пользователя при перелистывании страниц делится на три этапа: опускание пальца до касания экрана, перемещение пальца и поднятие пальца. Прикосновение к экрану пальцем означает, что перемещение между страницами вот-вот начнется; при перемещении пальца страница должна следовать расстоянию перемещения пальца пользователя, чтобы переместиться на соответствующее расстояние. В то же время система будет перемещать три дополнительных представления в Рабочей области в соответствии с движущейся позицией страницы. Рисование; когда вы поднимаете палец, определите, на какую страницу вы должны перейти и на какое расстояние вам нужно переместиться, а затем плавно переместите необходимое расстояние, чтобы перейти к целевой странице.

Чтобы отобразить трехмерный эффект, при рисовании каждого вложенного изображения ImageView необходимо найти способ повернуть его на определенный угол по оси Y. Как упоминалось ранее, Android предоставляет эту функцию через класс Camera. Вам не нужно использовать opengl ES. Конечно, если вы хотите Чтобы улучшить 3D-эффекты, нам нужны мощные функции opengl ES. Поскольку необходимо повернуть на определенный угол, как рассчитать этот угол? Мы связываем этот угол с расстоянием, на которое перемещается палец пользователя. Поскольку этот куб будет вращаться только вдоль оси Y, нам нужно смотреть только на верхнюю из трех граней куба. Его вершина представляет собой равносторонний треугольник вдоль оси Y в направлении, указанном стрелкой. Метод расчета угла поворота экрана мобильного телефона по оси Y показан на рисунке ниже:

Рисунок 4: Принципиальная схема исходного положения экрана

На следующем рисунке показан экран 1, повернутый по оси Y 45. После чтения два других экрана необходимо повернуть по оси Y.

Рисунок 5: Диаграмма положения экрана после поворота на 45 градусов

Для части этого преобразования, пожалуйста, просмотрите код функции drawScreen в коде CubeWorkspace, как показано ниже:

Переменная currentDegree в приведенной выше функции является переменной, а не фиксированным значением.Метод изменения значения этой переменной относительно скрыт в функции scrollTo AngelBaseWorkspace. Функция scrollTo в AngelBaseWorkspace перегружает функции в классе View. Эта функция будет вызываться функцией scrollBy в View, поэтому каждый раз при касании и перемещении экрана будет вызываться функция scrollTo в AngelBaseWorkspace (onTouchEvent вызывает scrollBy, scrollBy вызывает scrollTo), он изменит угол текущей страницы в соответствии с расстоянием, перемещаемым при касании пользователя, то есть значением переменной currentDegree. Подробности см. В следующем коде:

Это конец кода для части со спецэффектами куба.

В этой статье представлена ​​реализация плавных и трехмерных эффектов перелистывания страниц в средстве запуска Android, которые могут помочь разработчикам понять принципы структуры анимации Android, чтобы они могли в полной мере использовать существующую структуру Android для создания великолепных и крутых эффектов анимации.

Источник

Оцените статью
Юридический портал
Adblock
detector