2011-10-25 1 views
3

私は自分のAndroidランチャーを作成しています。アンドロイドランチャーアクティビティアニメーションを置換する

問題がある:

  • とき、私は活動を起動、それは左のスライド...
  • が、私はそれをを閉じる とき、それは右のスライド...
  • これは、迷惑と醜い!私はalreadで打ち上げアニメーションを削除することができました

Intent launch_intent = new Intent("android.intent.action.MAIN"); 
launch_intent.addCategory("android.intent.category.LAUNCHER"); 
launch_intent.setComponent(new ComponentName(packageName, name)); 
launch_intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 

activity.startActivity(launch_intent); 

私の目標はあるに:

  • また近いアプリケーションのアニメーションを削除します。
  • または起動/終了のデフォルトアニメーションを変更します。

ありがとうございます!

+0

これはアプリケーションやOS自体によって制御されていると私は思っています。 Androidの独自のディストリビューションを作成せずにこれを行うことは可能かどうかはわかりません。 – Codeman

+1

[this](http://developer.android.com/reference/android/app/Activity.html#overridePendingTransition%28int,%20int%29)が役に立ちますか? – Luksprog

答えて

5

「overridePendingTransition()」メソッドを使用することをお勧めしますので、着信アクティビティのアニメーションと発信アクティビティのアニメーションを設定します。
方法はstartActivityのafer追加することがshoud()または終了後の():

<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:interpolator="@android:anim/decelerate_interpolator"> 
    <scale android:fromXScale="2.0" android:toXScale="1.0" 
      android:fromYScale="2.0" android:toYScale="1.0" 
      android:pivotX="50%p" android:pivotY="50%p" 
      android:duration="@android:integer/config_mediumAnimTime" /> 
</set> 

場合:zoom_enterはそのような何かになります例えば

Intent launch_intent = new Intent("android.intent.action.MAIN"); 
    launch_intent.addCategory("android.intent.category.LAUNCHER"); 
    launch_intent.setComponent(new ComponentName(packageName, name)); 
    activity.startActivity(launch_intent); 
    overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit); 

遷移は、標準のAndroidのアニメーションです例えば、ユーザーが戻るボタンまたはホームボタンを押したときなど、アクティビティが閉じられているときにアニメーションを設定したい場合は、overridePendingTransition()をonPause()メソッドに追加する必要があります。
他のアプリケーションによってアクティビティが起動されているときにアニメーションを設定する場合は、super.onCreate()の前にoverridePendingTransition()を追加します。

+0

私はランチャーを開発しているので、多くのアプリケーションでは、コードを変更することはできません。ランチャーだけを変更してアニメーションを無効にしたい – inversus

+0

@inversusその場合、.startActivity()の後にoverridePendingTransition()を追加して、アプリケーションがランチャーから開いているときに必要なトランジションを取得し、super.onCreate()の前にoverridePendingTransitionランチャーがもう一度表示されたら、必要な移行も得られます。 – eladrich

+0

また、ランチャーアクティビティのonResumeにoverridePendingTransition()を追加する必要がありました。ランチャーは破壊されないので、起動時にonCreateを呼び出すだけです。ご協力いただきありがとうございます! – inversus

0

実際、私はそれも刺激的なアニメーションだと思うので、私もそれを変更したいと思っていました........そして私はそれをデフォルトアニメーションとして見つけました.........これをチェックしてくださいリンク........ http://developer.android.com/reference/android/view/animation/GridLayoutAnimationController.html この問題の検索を停止しました....

0

標準ランチャーを表示するアニメーションでは、主なランチャーのアクティビティに特定のテーマを適用する必要があります。このテーマはアンドロイド:Theme.Wallpaperである必要があります(または継承する必要があります)。 android:theme="@android:style/Theme.Wallpaper"

このようなテーマのAndroidフレームワークには、標準のLauncherで表示される特定のアニメーションが用意されています。

関連する問題