Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式更改;“x-三角洲”;一个动画实例?_Java_Android_Xml_Animation_Shake - Fatal编程技术网

Java 如何以编程方式更改;“x-三角洲”;一个动画实例?

Java 如何以编程方式更改;“x-三角洲”;一个动画实例?,java,android,xml,animation,shake,Java,Android,Xml,Animation,Shake,假设我们想要一个水平“摇晃”视图的动画 我们这样做: 爪哇: xml: 但是。。。为了做到这一点,我们必须能够在代码中设置“x-delta”。。。我看不出有什么办法 我试着键入“animShake”-“dot”-并查看可用选项。。。虽然有一些设置者,但他们似乎都不允许设置“x-delta”。我想我应该放弃,尝试使用其他动画技术的完全不同的方法,但我不敢相信这是不可能的 是否可以通过编程更改动画实例的“x-delta”?您可以在xml中使用可选的%p来控制相对于父级大小的移动量。比如: andro

假设我们想要一个水平“摇晃”视图的动画

我们这样做:

爪哇:

xml:

但是。。。为了做到这一点,我们必须能够在代码中设置“x-delta”。。。我看不出有什么办法

我试着键入“animShake”-“dot”-并查看可用选项。。。虽然有一些设置者,但他们似乎都不允许设置“x-delta”。我想我应该放弃,尝试使用其他动画技术的完全不同的方法,但我不敢相信这是不可能的


是否可以通过编程更改动画实例的“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"