2

次のコードを使用して、カスタムアニメーションで新しいアクティビティを表示します。新しいアクティビティが画面の下から上に表示され、古いアクティビティがフェードインします。

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

1 に答える 1

1

You may want to try adding this to your activity/app's theme:

<item name="android:windowIsTranslucent">true</item>
于 2013-05-03T21:56:49.633 に答える