2013-01-02 97 views
0

我有一個紙牌遊戲,其中卡片被表示爲佈局對象,其包含具有卡片的背景圖像的大切換按鈕,以及代表等級和花色的文本視圖卡。佈局動畫時不顯示Android佈局文本

<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> 

當redealing卡我想申請一個自定義動畫,顯示卡爲「翻轉」這是我在一系列對象的動畫師正在做,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軸上縮放以模擬旋轉,但它看起來不太好。但是,使用該方法時,動畫期間文本仍然顯示在卡上。有什麼我需要配置,以便文本可以顯示在卡上,並與圖像一起動畫,還是我需要分別添加自定義動畫到卡的所有元素?

回答

1

我認爲在經歷Android API documentation時我自己偶然發現了答案,所以我想我只是在這裏發帖以防有人出現同樣的問題。

通過調用動畫之前使drawingCache:

cardLayout.setDrawingCacheEnabled(true); 

我得到的佈局呈現爲位圖,它開始動畫,其中包括包含在佈局內的案文。