我有一个纸牌游戏,其中纸牌表示为一个布局对象,其中包含一个带有纸牌背景图像的大切换按钮,以及代表纸牌等级和花色的文本视图。
<RelativeLayout
android:id="@+id/card1">
<ToggleButton
android:id="@+id/cardback1" android:background="@drawable/blank_card" android:checked="false" android:textOff='' android:textOn="HELD" android:textColor="@android:color/holo_red_dark" android:clickable="true" android:enabled="false"/>
<TextView
android:id="@+id/rank1"
android:textColor="@android:color/holo_red_light"
android:textIsSelectable="false"
android:textSize="16dp"
android:layout_alignParentTop="true" android:layout_marginTop="5dp"
android:layout_marginLeft="7dp" android:textAlignment="center"/>
<TextView
android:id="@+id/suit1" android:text="@string/suit_diamond"
android:textColor="@android:color/holo_red_light"
android:textIsSelectable="false" android:typeface="normal"
android:textSize="24dp"
android:layout_centerInParent="true"/>
</RelativeLayout>
重新发牌时,我想应用自定义动画以将卡片显示为“翻转”,这是我在一系列对象动画中所做的,在 Y 轴上旋转我使用的动画定义如下:
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:valueFrom="0" android:valueTo="360" android:propertyName="rotationY" > </objectAnimator>
然后我为布局 xml 中引用的 RelativeLayout 设置动画。
RelativeLayout cardLayout = (RelativeLayout)findViewById(R.id.card1);
Animator initialAnimator = (ObjectAnimator) AnimatorInflater.loadAnimator(cardLayout.getContext(), R.anim.flip360);
initialAnimator.setTarget(cardLayout);
initialAnimator.setDuration(1000);
initialAnimator.start();
但是,在动画期间,布局上的文本根本没有显示。按钮图像按预期旋转,但在动画完成之前不会显示文本。
我之前在 cardLayout 上使用了一个更简单的动画,只是在 Y 轴上缩放以模拟旋转,但看起来不太好。但是,当使用该方法时,动画期间文本仍会显示在卡片上。是否需要配置一些内容,以便文本可以显示在卡片上并与图像一起动画,或者我是否需要分别为卡片的所有元素添加自定义动画?