Определите начальную позицию масштабирования / панорамирования с помощью KenBurnsView
Я работаю с библиотекой KenBurnsView и у меня проблема:
В обзоре или в этой симпатичной библиотеке говорится следующее: "Высокая расширяемость: вы можете определить, как будут генерироваться прямоугольники для масштабирования и панорамирования", и это именно то, что я хочу сделать, но я не знаю, как именно.
Я хотел бы быть в состоянии сказать библиотеке увеличивать или панорамировать указанную область (я полагаю, RectF) моего изображения. Я думаю, что мне нужно реализовать собственный TransitionGenerator и написать собственный метод generateNextTransition(), но я не знаю, что делать внутри.
Может кто-нибудь мне помочь?
Благодарю. Адриан
1 ответ
Вы должны реализовать свой собственный TransitionGenerator
и переопределить generateNextTransition()
откуда вы должны вернуть Transition
объект.
generateNextTransition()
метод принимает:
RectF drawableBounds
: границы отрисовки, которая установлена вKenBurnsView
;RectF viewport
границыKenBurnsView
объект.
Transition
конструктор принимает:
RectF srcRect
: прямоугольник рисованного элемента, который заполнит весьKenBurnsView
когда начинается переход (показано ниже):
Иллюстрация из Википедии
RectF dstRect
: прямоугольник рисованного элемента, который заполнит весьKenBurnsView
когда переход заканчивается;long duration
: продолжительность перехода в миллисекундах.Interpolator interpolator
: экземпляр интерполятора, который будет определять природу движения (может бытьAccelerateDecelerateInterpolator
,LinearInterpolator
, так далее.);
Это может быть хорошая идея, чтобы спасти dstRect
использоваться как srcRect
в следующем переходе, если вы хотите, чтобы каждый переход начинался с того места, где остановился последний переход. Это именно то, что RandomTransitionGenerator
делает. Имейте в виду, что srcRect
а также dstRect
могут иметь разные размеры (но оба должны быть drawableBounds
если вы хотите сохранить изображение на сцене все время). Важно, чтобы оба они имели одинаковое соотношение сторон viewport
,