Java 如何以编程方式更改;“x-三角洲”;一个动画实例?
假设我们想要一个水平“摇晃”视图的动画 我们这样做: 爪哇: xml: 但是。。。为了做到这一点,我们必须能够在代码中设置“x-delta”。。。我看不出有什么办法 我试着键入“animShake”-“dot”-并查看可用选项。。。虽然有一些设置者,但他们似乎都不允许设置“x-delta”。我想我应该放弃,尝试使用其他动画技术的完全不同的方法,但我不敢相信这是不可能的Java 如何以编程方式更改;“x-三角洲”;一个动画实例?,java,android,xml,animation,shake,Java,Android,Xml,Animation,Shake,假设我们想要一个水平“摇晃”视图的动画 我们这样做: 爪哇: xml: 但是。。。为了做到这一点,我们必须能够在代码中设置“x-delta”。。。我看不出有什么办法 我试着键入“animShake”-“dot”-并查看可用选项。。。虽然有一些设置者,但他们似乎都不允许设置“x-delta”。我想我应该放弃,尝试使用其他动画技术的完全不同的方法,但我不敢相信这是不可能的 是否可以通过编程更改动画实例的“x-delta”?您可以在xml中使用可选的%p来控制相对于父级大小的移动量。比如: andro
是否可以通过编程更改动画实例的“x-delta”?您可以在xml中使用可选的%p来控制相对于父级大小的移动量。比如:
android:fromXDelta="-5%p"
android:toXDelta="5%p"
难道你不能使用android:toXDelta=“5%p”/android:fromXDelta=“-5%p”这样的东西来使屏幕大小更加统一吗?这就是答案!你应该把它放进去,我会奖励你的!对我来说,我只做了5%,没有“p”。。。但我完全没有意识到这样一个事实,即您可以在xml中定义百分比,谢谢@BooberBunz yea%基于某些父容器上的基本大小-%p。
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="60"
android:fromXDelta="-20"
android:toXDelta="20"
android:repeatCount="14"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator" />
</set>
float ratio = 14f/392f;
float valueOfXTranslation = ratio*v.getWidth();
android:fromXDelta="-5%p"
android:toXDelta="5%p"