Я пытаюсь анимировать маркер карты в моем приложении для Android.Начальный видовой экран можно представить как стоящий прямоугольник (а анимированная векторная форма, т.е. маркер в моем случае занимает большую часть этого прямоугольника).Начальные значения выглядят следующим образом:
- ширина: 57 (относится к объекту, который я пытаюсь анимировать)
- высота: 80 (относится к объекту, который я пытаюсь оживить))
- ширина области просмотра: 57
- высота области просмотра: 80
Затем, во время выполнения, если щелкнуть маркер, он поворачивается на -90 градусов.По логике, ширина ограничительной рамки теперь равна 80, а высота 57. Однако область просмотра по-прежнему остается в своем первоначальном размере.Поэтому половина моей анимированной векторной фигуры обрезается.
Я пытался вручную изменить размер окна просмотра, чтобы увеличить его, но это не сработало, поскольку оно исказило мою форму в каждом из них.комбинация, в которой не было 57 и 80.
Возможно ли также вращать окно просмотра, поскольку я НЕ хочу уменьшать векторную форму, чтобы она помещалась в исходном окне просмотра.
Это мой xml-файл, представляющий анимированный вектор для рисования:
<animated-vector
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt">
<aapt:attr name="android:drawable">
<vector
android:name="vector"
android:width="57dp"
android:height="80dp"
android:viewportWidth="57"
android:viewportHeight="80">
<group android:name="group"
android:pivotX="40"
android:pivotY="28.5">
<path
android:name="path"
android:pathData="M 28.41 2.24 L 8.08 22.24 L 28.41 42.49 L 48.74 22.24 L 28.41 2.24 Z"
android:fillColor="#ffffff"
android:strokeColor="#ffffff"
android:strokeWidth="1"
android:strokeMiterLimit="10"/>
<path
android:name="path_1"
android:pathData="M 28.41 52.03 L 2.99 26.49 L 2.99 52.07 L 28.41 77.57 L 53.33 52.03 L 53.33 26.49 L 28.41 52.03 Z"
android:fillColor="#ffffff"
android:strokeColor="#ffffff"
android:strokeWidth="1"
android:strokeMiterLimit="10"/>
</group>
</vector>
</aapt:attr>
<target android:name="group">
<aapt:attr name="android:animation">
<set>
<objectAnimator
android:propertyName="rotation"
android:duration="300"
android:valueFrom="0"
android:valueTo="-90"
android:valueType="floatType"
android:interpolator="@android:interpolator/fast_out_slow_in"/>
</set>
</aapt:attr>
</target>
</animated-vector>
Еще одно примечание: точка поворота (то есть точка, вокруг которой вращается векторная фигура) установлена в центробласти просмотра, поэтому ошибки точки поворота исключены (я надеюсь).