web-dev-qa-db-ja.com

カスタムアニメーションによるアクティビティの表示

クリックするとアクティビティを開始するウィジェットがあります。 Androidの標準の右からスクロールするのではなく、このアクティビティを表示するためのある種の派手なアニメーションが欲しいです。ただし、設定に問題があります。これは私が持っているものです:

slide_top_to_bottom.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:interpolator="@Android:anim/accelerate_interpolator">
    <translate Android:fromYDelta="-100%" Android:toXDelta="0" Android:duration="100" />
    <alpha Android:fromAlpha="0.0" Android:toAlpha="1.0" Android:duration="50" />
</set>

...これはanim.xmlで参照されます

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:delay="50%"
        Android:animation="@anim/slide_top_to_bottom" />

しかし、どこから参照すればよいのでしょうか。スライドインするアクティビティの基本要素とマニフェストへのアクティビティのエントリの両方を試しました。

Android:layoutAnimation="@+anim/anim"

私はこれをすべて間違っているかもしれません。どんな助けでも大歓迎です!

30
blork

独自のアニメーションへの参照を使用してカスタムテーマを作成し、マニフェストファイルのアクティビティに適用できます。次のスタイル定義を使用して、フローティングウィンドウにカスタムアニメーションを適用することに成功しました。スタイルの親を「@Android:style/Animation.Activity」に設定すると、同様のことができる場合があります

オーバーライドできる内容の詳細については、次のファイルを参照してください。

https://github.com/Android/platform_frameworks_base/blob/master/core/res/res/values/styles.xmlhttps://github.com/Android/platform_frameworks_base/ blob/master/core/res/res/values/themes.xml

これが私のstyles.xmlとmanifest.xmlの一部です

styles.xml

<style name="MyTheme" parent="@Android:style/Theme.Panel">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:backgroundDimEnabled">true</item>
    <item name="Android:windowAnimationStyle">@style/MyAnimation.Window</item>
</style>

<!-- Animations --> 
<style name="MyAnimation" /> 

<!-- Animations for a non-full-screen window or activity. --> 
<style name="MyAnimation.Window" parent="@Android:style/Animation.Dialog"> 
    <item name="Android:windowEnterAnimation">@anim/grow_from_middle</item>
    <item name="Android:windowExitAnimation">@anim/shrink_to_middle</item>
</style> 

Manifest.xml

    <activity
        Android:name="com.me.activity.MyActivity"
        Android:label="@string/display_name"
        Android:theme="@style/MyTheme">
    </activity>
52
Akos Cz
startActivity(intent);
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);

このリンクを確認してください: overridePendingTransition method

編集:

ビューのアニメーションを実現します。あなたは以下のようなstartAnimationメソッドを使用しています

view.startAnimation(AnimationUtils.loadAnimation(
                 WidgetActivity.this,R.anim.slide_top_to_bottom));

これをチェックしてください リンク

6
Praveen