Visual Studio Designing Для Android, у меня есть motion_item_scene.xml, где я пытаюсь управлять скоростью анимации: < /p>
< /code>
Просто скользите кадр слева направо или справа налево. Мой макет: < /p>
& l t ; a n d r o i d x . c o n s t r a i n t l a y o u t . m o t i o n . w i d g e t . M o t i o n L a y o u t < b r / > x m l n s : a n d r o i d = & q u o t ; h t t p : / / s c h e m a s . a n d r o i d . c o m / a p k / r e s / a n d r o i d & q u o t ; < b r / > x m l n s : a p p = & q u o t ; h t t p : / / s c h e m a s . a n d r o i d . c o m / a p k / r e s - a u t o & q u o t ; < b r / > a n d r o i d : i d = & q u o t ; @ + i d / m o t i o n L a y o u t & q u o t ; < b r / > a n d r o i d : l a y o u t _ w i d t h = & q u o t ; m a t c h _ p a r e n t & q u o t ; < b r / > a n d r o i d : l a y o u t _ h e i g h t = & q u o t ; @ d i m e n / d o s e _ i t e m _ b a d g e _ f r a m e _ s i z e & q u o t ; < b r / > a p p : l a y o u t D e s c r i p t i o n = & q u o t ; @ x m l / m o t i o n _ i t e m _ s c e n e & q u o t ; & g t ; < b r / > < b r / > & l t ; R e l a t i v e L a y o u t < b r / > a n droid:id="@+id/layout_dose_color"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dose_bg_mild"
android:orientation="horizontal">
< /code>
Анимация слайдов запускается правильно: < /p>
public void rightAnimation(final ViewHolder holder, boolean firstPart) {
if (holder.motionLayout != null) {
holder.motionLayout.setTransitionListener(new MotionLayout.TransitionListener() {
@Override public void onTransitionStarted(MotionLayout motionLayout, int startId, int endId) {}
@Override public void onTransitionChange(MotionLayout motionLayout, int startId, int endId, float progress) {}
@Override public void onTransitionCompleted(MotionLayout motionLayout, int currentId) {
if (firstPart) {
viewForSongAddedToQueue((View) holder.image_frame.getParent(), holder);
Common.setQueueNum();
SoundManager.soundEffect(DoseSound.QueueNumberPlus);
Common.queueAnimation[holder.position] = false;
}
motionLayout.setTransitionListener(null);
}
@Override public void onTransitionTrigger(MotionLayout motionLayout, int triggerId, boolean positive, float progress) {}
});
holder.motionLayout.setTransition(R.id.start_slide_in_right, R.id.end);
holder.motionLayout.setProgress(0f);
holder.motionLayout.transitionToEnd();
} else if (firstPart) {
viewForSongAddedToQueue((View) holder.image_frame.getParent(), holder);
Common.setQueueNum();
SoundManager.soundEffect(DoseSound.QueueNumberPlus);
Common.queueAnimation[holder.position] = false;
}
Common.isSwiping = false;
}
public void leftAnimation(final ViewHolder holder, boolean firstPart) {
if (holder.motionLayout != null) {
holder.motionLayout.setTransitionListener(new MotionLayout.TransitionListener() {
@Override public void onTransitionStarted(MotionLayout motionLayout, int startId, int endId) {}
@Override public void onTransitionChange(MotionLayout motionLayout, int startId, int endId, float progress) {}
@Override public void onTransitionCompleted(MotionLayout motionLayout, int currentId) {
if (firstPart) {
setDefaultValuesToView((View) holder.image_frame.getParent(), holder);
holder.image_badge_frame.setImageResource(
Common.getDoseDrawableResource(mContext, "dose_frame_out"));
Common.queueAnimation[holder.position] = false;
Common.setQueueNum();
SoundManager.soundEffect(DoseSound.QueueNumberMinus);
}
motionLayout.setTransitionListener(null);
}
@Override public void onTransitionTrigger(MotionLayout motionLayout, int triggerId, boolean positive, float progress) {}
});
holder.motionLayout.setTransition(R.id.end, R.id.end_slide_out_left);
holder.motionLayout.setProgress(0f);
holder.motionLayout.transitionToEnd();
} else if (firstPart) {
setDefaultValuesToView((View) holder.image_frame.getParent(), holder);
holder.image_badge_frame.setImageResource(
Common.getDoseDrawableResource(mContext, "dose_frame_out"));
Common.queueAnimation[holder.position] = false;
Common.setQueueNum();
SoundManager.soundEffect(DoseSound.QueueNumberMinus);
}
Common.isSwiping = false;
}
< /code>
Однако я не могу контролировать скорость анимации слайда. В любое время, когда я меняю движение: duration = "100" Это меняет только время, необходимое для начала анимации (задержка), а не фактическая скорость по какой -то причине.
Подробнее здесь: https://stackoverflow.com/questions/797 ... tion-speed
Движение: Продолжительность не контролирует скорость анимации ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему Unity преобразует мою скорость вперед в горизонтальную скорость? [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 83 Просмотры
-
Последнее сообщение Anonymous
-