2013-01-02 2 views
0

카드가 배경 이미지가있는 큰 토글 버튼이 포함 된 레이아웃 객체로 표시되는 카드 게임이 있고 카드의 배경 이미지가있는 텍스트 뷰가 있습니다. 카드. 카드를 redealing 때 레이아웃이 애니메이션으로 표시되는 동안 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> 

내가 좋아하는 정의 된 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); 

나는 그것을 레이아웃에 포함 된 텍스트를 포함하는 애니메이션을 시작하기 전에 비트 맵으로 렌더링 할 수있는 레이아웃을 얻고있다.

관련 문제