Intereting Posts

Как подготовить анимацию трансляции кривой для Android?

В андроиде есть 4 типа анимаций – вращение, альфа, масштаб и перевод. Я хочу подготовить изогнутую анимацию перевода.

Является ли это возможным.?

Какую версию Android вы используете? Начиная с уровня API 11, вы можете использовать пользовательские аниматоры, которые могут легко реализовать перевод кривой.

Если вы используете версию ниже, то есть afaik только возможность вручную объединить несколько линейных переводов с помощью анимации трансляции и установки анимационных прослушивателей

РЕДАКТИРОВАТЬ:

Пример:

View view; animator = ValueAnimator.ofFloat(0, 1); // values from 0 to 1 animator.setDuration(5000); // 5 seconds duration from 0 to 1 animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float value = ((Float) (animation.getAnimatedValue())) .floatValue(); // Set translation of your view here. Position can be calculated // out of value. This code should move the view in a half circle. view.setTranslationX((float)(200.0 * Math.sin(value*Math.PI))); view.setTranslationY((float)(200.0 * Math.cos(value*Math.PI))); } }); 

Надеюсь это работает. Просто скопировал и вставил (и сократил и изменил) код из одного из моих приложений.

Вот аниматоры, которые я использую:

Цель: Переместить «Просмотр» по пути «Путь»

Android v21 +:

 // Animates view changing x, y along path co-ordinates ValueAnimator pathAnimator = ObjectAnimator.ofFloat(view, "x", "y", path) 

Android v11 +:

 // Animates a float value from 0 to 1 ValueAnimator pathAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); // This listener onAnimationUpdate will be called during every step in the animation // Gets called every millisecond in my observation pathAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { float[] point = new float[2]; @Override public void onAnimationUpdate(ValueAnimator animation) { // Gets the animated float fraction float val = animation.getAnimatedFraction(); // Gets the point at the fractional path length PathMeasure pathMeasure = new PathMeasure(path, true); pathMeasure.getPosTan(pathMeasure.getLength() * val, point, null); // Sets view location to the above point view.setX(point[0]); view.setY(point[1]); } }); 

Похоже на: Android, перемещение растрового изображения по пути?

Рассмотрим следующую веб-ссылку. Это игра на C. Вам нужно изолировать функцию projectile () и попытаться понять переменные, определенные внутри нее. Как только вы попытаетесь реализовать его в своем собственном коде.

http://www.daniweb.com/software-development/c/code/216266