活动之间的过渡动​​画会创建白尾伪影

时间:2012-10-26 15:28:54

标签: android animation transition artifact

我使用以下代码显示自定义动画的新活动。新活动显示在屏幕底部并显示在顶部,旧活动将淡入。

startActivity(intent);
overridePendingTransition(R.anim.slide_in_up, R.anim.fade_in);

slide_in_up.xml:

<?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android">  
    <translate android:fromYDelta="100%" 
        android:toYDelta="0%"  
        android:duration="@android:integer/config_shortAnimTime"/>  
</set>  

fade_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">  
  <alpha android:fromAlpha="1.0" 
      android:toAlpha="0.5"  
      android:duration="@android:integer/config_mediumAnimTime" />  
</set>  

问题在于,当活动出现并向上移动时,在它移动的同时,有白色条纹神器或尾部然后很快消失。

我正在为SDK 8开发。 奇怪的是,如果我在Android 4.1.2上运行我的应用程序,在转换过程中没有任何工件,但对于所有以前的版本都有。

相反方向的动画

当我设置相反的方向slide_in_up.xml:

<?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android" >  
    <translate 
        android:fromYDelta="-100%" 
        android:toYDelta="0%"  
        android:duration="@android:integer/config_shortAnimTime"/>  
</set>  

过渡效果非常好。

我发布的活动有以下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/black"
        android:gravity="fill_vertical" >
        <Button
            android:id="@+id/goHomeButton"
            style="@style/HeaderTextStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="@string/comparison_title" />
    </RelativeLayout>
    <ListView
        android:id="@+id/listViewComparison"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/gray"
        android:cacheColorHint="@color/transp"
        android:divider="@null"
        android:listSelector="@color/transp" >
    </ListView>
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您可以尝试将此添加到您的活动/应用主题:

<item name="android:windowIsTranslucent">true</item>