【问题标题】:Transition animation between activities creates a white tail artifact活动之间的过渡动​​画创建一个白尾神器
【发布时间】:2012-10-26 15:28:54
【问题描述】:

我使用以下代码来显示带有自定义动画的新活动。新 Activity 从屏幕底部出现并移至顶部,旧 Activity 淡入。

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>  

问题在于,当 Activity 出现并上升时,在它移动时在其顶部有白色条纹伪影或尾巴,然后很快消失。

我正在为 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>

【问题讨论】:

    标签: android animation transition artifact


    【解决方案1】:

    您可能想尝试将其添加到您的活动/应用的主题中:

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

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 2012-03-24
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 2020-09-27
      • 2011-06-23
      相关资源
      最近更新 更多