Android layout 设置布局动画时不显示Android布局文本

Android layout 设置布局动画时不显示Android布局文本,android-layout,android-animation,Android Layout,Android Animation,我有一个纸牌游戏,其中的纸牌被表示为一个布局对象,包含一个带有背景图像的大切换按钮,以及表示纸牌等级和花色的文本视图 <RelativeLayout android:id="@+id/card1"> <ToggleButton android:id="@+id/cardback1" android:background="@drawable/blank_card" android:checked="fal

我有一个纸牌游戏,其中的纸牌被表示为一个布局对象,包含一个带有背景图像的大切换按钮,以及表示纸牌等级和花色的文本视图

<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>
但是,在动画期间,布局上的任何文本都不会显示。按钮图像按预期旋转,但直到动画完成后才会显示文本


我以前在cardLayout上使用了一个简单得多的动画,简单地在Y轴上缩放以模拟旋转,但它看起来不是很好。但是,使用该方法时,在动画期间,文本仍显示在卡上。是否需要进行配置,以便文本可以显示在卡上,并与图像一起设置动画,或者我需要将自定义动画分别添加到卡的所有元素吗?

我想我自己在浏览时偶然发现了答案,所以我想我应该把它发布在这里,以防有人提出同样的问题

通过在调用动画之前启用drawingCache:

cardLayout.setDrawingCacheEnabled(true);
在开始设置动画之前,我将布局渲染为位图,其中包括布局中包含的文本

  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.setDrawingCacheEnabled(true);