2012-06-25 14 views
6

かなり簡単な質問を隠さないが、私はすでにこれを求めている人を見つけるように見えることはできません。ほとんどの場合、正しいキーワードを使用していない可能性があります。いずれの場合においても切り替えは:ここでは、以前の活動に

は、ここに私のシナリオです:

私は、私は、Webビューを表示する新しい活動を開始しています。新しいアクティビティに切り替えるときに、アニメーションを取得するためにoverridePendingTransitionを呼び出しました。これはうまくいきました(少なくともアニメーション部分はうまくいきます)。しかし、その影響を取り除くにはいくつかのことがあります。

私が欲しいのは、下から、前のアクティビティの上にWebViewのスライドを持つことであり、ユーザが戻って押したときに、それがダウンし、サイトのうち後ろにスライドする必要があります。この2番目の部分は魅力的ですが、最初の部分は正確には私が望むものではありません。

はすぐに新しいアクティビティをトリガすると、古いものが隠されている、とWebViewのは暗黒上をスライドのように見えるので、その場所に、黒さです。私はそれを隠すのではなく、バックグラウンドで前のアクティビティを残しておきたいので、webviewはそれをスライドさせます。これは可能ですか?

ありがとうございます!

答えて

1

所望の効果を達成するため、カスタムトランジションアニメーションXMLリソースファイルを作成し、次の活動を開始する前にActivity.overridePendingTransitionを呼び出します。

+0

私はそれらを持っている、私はちょうど出口のアニメーションで言う方法を知らない "滞在して見える滞在" – Droidmon

+3

これは愚かなのですが、アニメーションは基本的に何もしませんし、webviewのアニメーションと同じ時間持続します。 (私はxDeltaを0%から0%に変換します。つまり、明らかにどこにも行かないのですが、黒ではなくバックグラウンドで描画されます) – Droidmon

+1

これは私がやったことです。 0から0への遷移。 Androidはちょっと奇妙な笑です – trapper

1

それは遅いかもしれないが、あなたは活動のために別のテーマを使用してみましたが?

チェックthis out。

+0

setThemeでそれらの束を試してみましたが、何か違うものを見ませんでした。リンクをありがとう、私はカスタムテーマを作ってみることがあります。 – Droidmon

+0

アクティビティの代わりにフラグメントを使用する方法はありますか? Googleはとにかくそれらを使用することを示唆しています... –

11

私は同じことを探してここに来たが、現在の答えは何の助けませんでした。私はこれが助けてくれることを願っています。私の意見で

ので、これは、Androidプラットフォームのバグです:exitAnimが0である場合にのみ、それが唯一の「翻訳」の要素で発生

  • 、たまたま

    • 。 'alpha'要素(フェードイン、フェードアウト)はうまく動作します。

    ここでは私の回避策です:

    mu_no_anim.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <alpha xmlns:android="http://schemas.android.com/apk/res/android" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="100000" /> 
    

    だから、これはからそれをフェードするために信頼性の高いアルファ・メカニズムを指定することで、目に見える滞在するアウトゴーイング活動を強制されている

    @Override 
    protected void onResume() { 
        overridePendingTransition(R.anim.mu_slide_in_left, R.anim.mu_no_anim); 
        super.onResume(); 
    } 
    
    @Override 
    protected void onPause() { 
        overridePendingTransition(0, R.anim.mu_slide_out_right); 
        super.onPause(); 
    } 
    

    アルファ1からアルファ1まで100秒 - それは完全に見えるようにしてください。

    回避策は完全ではありません。たとえば、新しいアクティビティがダイアログから呼び出された場合、ダイアログは、アクティビティが所定の場所にスライドするときに解除されたように見えますが、そのアクティビティを閉じた後に再び表示されます。

  • 1

    遅延出口アニメーションを使用するのではなく、入力アクティビティのテーマにプロパティを追加して、ウィンドウを半透明にすることができます。これにより、以前のアクティビティを見ることができます。

    <style name="EnteringActivity.Theme" parent="@android:style/Theme.Holo.Light"> 
        [...] 
        <item name="android:windowIsTranslucent">true</item> 
        [...] 
    </style> 
    

    注:私は、黒い画面を得るための同様の問題は、移行をスライド上に表示されていた

    <item name="android:windowBackground">@color/transparent</item> 
    
    1

    :ダイアログアクティビティを作成している場合、あなたはまた、活動のテーマで、次のプロパティが必要になります1つのアクティビティーから別のアクティビティーへ、オーバーライドすることを意味します。 と私は、以下の方法を踏襲し、それが を働いていた)アニメーションフォルダに

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

    をnoanim.xmlを作成し、私のオリジナルのアニメーションと2番目のパラメータとして

    overridePendingTransition(R.drawable.lefttorightanim, R.anim.noanim); 
    

    最初のパラメータを使用しましたこれは私の擬似アニメーションとして終了アニメーションです

    関連する問題