当rotationY被动画化时,ViewGroup的Android内容会消失

时间:2013-04-08 13:36:01

标签: android animation rotation

我创建了一个动画,将“卡片”翻转到背面。 为此,我在每个,前面和后面使用了setRotationYBy()和setVisibility()。 动画本身工作正常,但是当动画运行时,两张卡的内容消失(并在动画完成时重新出现)。 cardFront.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {


            final Runnable moveMapDown = new Runnable() {
                 public void run() {
                     map.animate().y(0);
                 }
             };
             final Runnable flipCard2 = new Runnable() {
                 public void run() {
                     cardBack.setVisibility(View.VISIBLE);
                     cardFront.setVisibility(View.INVISIBLE);
                     currentFront = false;  
CardBack.animate().rotationYBy(90).setInterpolator
(new DecelerateInterpolator()).withEndAction(moveMapDown).setDuration(300);
                     cardFront.setRotationY(180);

                 }
             };
            Runnable flipCard = new Runnable() {
                 public void run() {
                     cardBack.setRotationY(-90);
                 cardFront.animate().rotationYBy(90).setInterpolator
              (new AccelerateInterpolator()).withEndAction(flipCard2).setDuration(300);

                 }
             };

            map.animate().y(-200).withEndAction(flipCard);

        }

    });

背面的XML布局(前面几乎相同)。

<RelativeLayout
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/imageView1"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:layout_marginTop="-18dp"
        android:background="@drawable/bgpatch"
        android:paddingBottom="16dp"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:paddingTop="6dp"
        android:visibility="invisible" >

        <RelativeLayout
            android:layout_width="300dp"
            android:layout_height="288dp"
            android:background="@drawable/dayplan_element_bg" >

            <RelativeLayout
                android:id="@+id/background"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/dayplan_element_bg"
                android:paddingBottom="2dp"
                android:paddingLeft="8dp"
                android:paddingRight="8dp"
                android:paddingTop="2dp" >

                <TextView
                    android:id="@+id/backTitle"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_centerHorizontal="true"
                    android:layout_centerInParent="true"
                    android:layout_centerVertical="true"
                    android:gravity="center"
                    android:text="zusätzliche Informationen"
                    android:textAppearance="?android:textAppearanceLarge"
                    android:textColor="@android:color/primary_text_dark"
                    android:textSize="30sp"
                    android:textStyle="italic" />
            </RelativeLayout>

            <View
                android:id="@+id/view1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="-1dp"
                android:background="@drawable/shadow" />
        </RelativeLayout>
    </RelativeLayout>

1 个答案:

答案 0 :(得分:0)

找到解决方案: 由于应用程序的另一部分要求,我将硬件加速设置为false。 把它恢复到真相并且它有效!