2016-05-20 1 views
16

私はAndroidにはまったく新しいものです。アクティビティが開いたら、私のアプリでアニメーションをカスタマイズする必要があります。Androidでアクティビティを開始するためのカスタムアニメーションが期待通りに機能しない

私は同じファイルで、テーマにスタイルを適用後styles.xml

<style name="YourAnimation.Activity" parent="@android:style/Animation.Activity"> 
    <item name="android:windowEnterAnimation">@anim/fade_in</item> 
    <item name="android:windowExitAnimation">@anim/fade_out</item> 
</style> 

自分のアプリケーションに次のコードを使用していました。私はこれを実行しているとき

<style name="YourTheme" parent="android:Theme.Translucent"> 
    <item name="android:windowAnimationStyle">@style/CustomAnimationActivity</item> 
</style> 

はその後、私の AndroidManifest.xml

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/YourTheme" > 
</application> 

にテーマを追加しました。しかし、次のようなエラーが発生します。

errors

私は私がどこかに私のプロジェクトでアニメーションmlのファイルを追加する必要があると思います。しかし、それをどうやって行うのか分かりません。誰かがこれで私を助けてください。

ありがとうございます。ここで:)

-edit-

ここfade_in.xml

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

があるさfade_out.xml

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

クラッシュログ

05-20 15:36:47.216 3557-3557/com.myayubo E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.myayubo, PID: 3557 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myayubo/com.myayubo.PreSplash}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2338) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
      at android.os.Handler.dispatchMessage(Handler.java:110) 
      at android.os.Looper.loop(Looper.java:193) 
      at android.app.ActivityThread.main(ActivityThread.java:5299) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
      at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:122) 
      at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146) 
      at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59) 
      at com.myayubo.PreSplash.onCreate(PreSplash.java:23) 
      at android.app.Activity.performCreate(Activity.java:5264) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
            at android.os.Handler.dispatchMessage(Handler.java:110) 
            at android.os.Looper.loop(Looper.java:193) 
            at android.app.ActivityThread.main(ActivityThread.java:5299) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
            at dalvik.system.NativeStart.main(Native Method) 
+0

アニメーションの詳細については、こちらを参照してください。http://coderzpassion.com/android-working-アニメーション/ –

+0

ありがとうございました。私はこれを試してみる。 :) –

答えて

7

Androidスタジオで:

  • 右クリックしてください。
  • 新規> Androidリソースディレクトリ。
  • リソースタイプ:select anim。
  • OKを押すと、アニメーションフォルダが作成されます。

CustomAnimationActivityの商品は、stylesと同じように作成/含めることができます。ただ、例えばAppCompatテーマを拡張するために、あなたのstyles.xmlを変更するクラッシュログ

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.` 

を以下

編集

<style name="YourTheme" parent="android:Theme.AppCompat.Light"> 
     <item name="android:windowAnimationStyle">@style/CustomAnimationActivity</item> 
</style> 

また、あなたのActivityは、おそらくAppCompatActivity(またはActivity)を拡張する必要があります。

+0

私はanimフォルダとfade_inとfade_outtoをそのフォルダに追加して、アプリがクラッシュしました。編集した質問をご覧ください。 –

+0

クラッシュログを投稿できますか? –

+0

クラッシュログが追加されました。 llokを持ってください。 :) –

2

は、アニメーションフォルダ内のxmlファイルの下

フェードインを追加してください。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="0.0" 
    android:toAlpha="1.0" 
    android:duration="700" /> 

fadeout.xml

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

overridePendingTransition(R.anim.fadein, R.anim.fadeout); 
関連する問題