Я очень близок к тому, чтобы заставить работать анимацию «подбрасывания монеты», но из-за ограничений (ошибок?) В текущей системе анимации я не могу найти способ показать ОБЕИХ стороны подбрасывания монеты в воздухе.
Например, у меня есть следующая Анимация .XML:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:repeatCount="17"
android:repeatMode="reverse"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0" android:toXScale="1.0"
android:fromYScale="1.0" android:toYScale="0.0"
android:pivotX="50%" android:pivotY="50%"
android:fillEnabled="true"
android:fillAfter="true"
android:duration="60"
/>
<scale
android:repeatCount="1"
android:repeatMode="reverse"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0" android:toXScale="2.0"
android:fromYScale="1.0" android:toYScale="2.0"
android:pivotX="50%" android:pivotY="50%"
android:fillEnabled="true"
android:fillAfter="true"
android:duration="800"
/>
<translate
android:repeatCount="1"
android:repeatMode="reverse"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="-150%"
android:fillEnabled="true"
android:fillAfter="true"
android:duration="800"
/>
</set>
Это "имитирует" анимацию переворачивания, масштабируя монету по оси Y и меняя ее в обратном направлении. В сочетании с этим есть масштаб, который увеличивает общую анимацию, а также перемещает ее вверх и вниз. Но это когда-либо покажет только одну сторону медали.
Я пробовал иметь две из этих анимаций, каждую сторону медали, выполняются одновременно, но я не могу найти способ поразить их, потому что REPEATCOUNT не работает при применении к AnimationSet. В противном случае я мог бы ввести какую-то задержку после одного анима (и перед другим), чтобы они чередовались, создавая иллюзию подбрасывания монеты.
Кто-нибудь знает, как я могу настроить это, чтобы получить желаемый результат?
Я думал отказаться и создать покадровую анимацию (предварительно отрендерить флип как фреймы), но оказалось, что нельзя смешивать фреймовые и Tween-анимации, поэтому я потеряю флип «высоту» и «расстояние» "эффекты.
(У меня есть еще одна проблема, когда дело доходит до приземления монеты - например, конечный результат случайный, но я надеюсь, что смогу переключиться на фактический результат в конце?)
Заранее спасибо! @RequestScoped @FacesConverter (forClass = Group.class) открытый класс GroupConverter реализует Converter {@ ...
Я пытаюсь внедрить ManagedBean в свой FacesConverted следующим образом:
@ManagedBean
@RequestScoped
@FacesConverter(forClass = Group.class)
public class GroupConverter implements Converter {
@ManagedProperty("#{groupService}")
private GroupService groupService;
@Override
public Group getAsObject(FacesContext context, UIComponent arg1,
String groupName) {
return groupService.findGroupByName(groupName);
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object group) {
return ((Group) group).getName();
}
public GroupService getGroupService() {
return groupService;
}
public void setGroupService(GroupService groupService) {
this.groupService = groupService;
}
}
Проблема в том, что groupService не внедряется, и я получаю NullPointerEx. Разве он не должен автоматически подключаться автоматически, поскольку он также является ManagedBean? Все работает, когда я меняю getAsObject на «return new Group ();» очевидно.
Есть идеи?