Я пытаюсь использовать XML Animations , чтобы увеличить представление от 0% до 150% (на 50% больше, чем «реальный размер»). Затем уменьшите размер с 150% до «реального размера» 100%. Намерение - это что-то вроде эффекта «отскока», когда представление вырастет из ничего до большего, чем должно быть, а затем «отскок» или «возврат» к нужному размеру.
Вотизображение, которое иллюстрирует график того, что я хотел бы достичь.
Я использую этот код анимации XML:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
>
<scale android:fromXScale="0"
android:fromYScale="0"
android:toXScale="1.5"
android:toYScale="1.5"
android:duration="200"
android:pivotX="50%"
android:pivotY="100%"
android:fillAfter="false"
/>
<scale android:fromXScale="1.5"
android:fromYScale="1.5"
android:toXScale="1.0"
android:toYScale="1.0"
android:duration="100"
android:pivotX="50%"
android:pivotY="100%"
android:startOffset="200"
/>
</set>
Проблема, с которой я сталкиваюсь, заключается в том, что после первогоМасштабирование анимации завершает представление правильно с размером 150%, но когда он запускает вторую анимацию, он масштабируется относительно размера, который мы закончили с первой анимацией (150%) как «реальный размер» 100% или 1,0.
Поэтому, когда запускается вторая анимация вместо того, чтобы мой масштаб уменьшился с 150% до реального размера 100%, это фактически масштабируется с 150% из 150% (225%) до 150%. Это означает, что в конце анимации вид все еще слишком велик, в моем случае он составляет 150% от реального размера.
Есть ли какой-нибудь способ дать указание второй анимации или набору анимации игнорировать конечное значение из первой анимации и вместо этого просто использовать «реальный» размер представления, чтобы код был более буквально интерпретирован ибудет масштабироваться от 150% реального размера до 100% реального размера.
Я пробовал каждую комбинацию fillBefore
, fillAfter
и fillEnabled
, которую я могу придумать для каждой анимации масштаба ина самом устройстве, но до сих пор я не смог найти комбинацию этих настроек, которая заставит его вести себя так, как я намереваюсь.
Я нашел Эта статья , которая, кажется, может иметь отношение к моей ситуации, и это заставило меня опробовать еще несколько комбинаций различных свойств fill
. Но до сих пор я не могу получить результат, на который я надеюсь.