我最近一直在为Android开发纸牌游戏。一切顺利,没有错误,所以我想开始接触它。我想做的一件事就是让我的卡片在发出时从屏幕边缘滑入。我听说矩阵数组类在进行滚动动画时非常有用,但我不知道如何做到这一点,在线搜索似乎没有任何用处。有没有比使用矩阵更实际有效的方法呢?如果没有,有人可以解释矩阵是如何工作的吗?
答案 0 :(得分:1)
您可以创建Animator并将其附加到卡片对象上。 (或者只是加载动画并在需要时播放它,我将在下面使用一些代码显示)
然后你需要在res中创建一个名为anim的文件夹,在该文件夹中创建两个文件:
slide_up_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="@integer/config_slide_time"
android:fromYDelta="100%p"
android:toYDelta="0" />
<alpha
android:duration="@integer/config_slide_time"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
<rotate
android:duration="@integer/config_slide_time"
android:fromDegrees="25"
android:pivotX="0"
android:pivotY="0"
android:toDegrees="0" />
</set>
slide_up_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="@integer/config_slide_time"
android:fromYDelta="100%p"
android:toYDelta="0" />
<alpha
android:duration="@integer/config_slide_time"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
<rotate
android:duration="@integer/config_slide_time"
android:fromDegrees="-25"
android:pivotX="100%"
android:pivotY="0"
android:toDegrees="0" />
</set>
在您的values文件夹中创建一个名为integers的xml文件,其中包含:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="config_slide_time">800</integer>
</resources>
如果您不需要Animator对象,请使用以下代码:
YOURCARD_VIEW.startAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.slide_up_left));
或者
YOURCARD_VIEW.startAnimation( AnimationUtils.loadAnimation(getContext(), R.anim.slide_up_right));
YOURCARD_VIEW是一个View对象,因此您必须将卡定义为View