Wyświetlanie aktywności z niestandardową animacją

Mam widget, który rozpoczyna aktywność po kliknięciu. Chciałbym mieć jakąś fantazyjną animację do wyświetlania tej aktywności, a nie standardowe przewijanie z prawej strony Androida. Ale mam problemy z ustawieniem. To jest to co mam:

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>

...który znajduje się w 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" />
Ale skąd mam to odwołać? Wypróbowałem zarówno podstawowy element aktywności, którą chcę wślizgnąć, jak i w manifeście, w obu przypadkach z
android:layoutAnimation="@+anim/anim"
Chyba robię to źle. Każda pomoc jest mile widziana!
Author: blork, 2010-06-21

3 answers

Możesz utworzyć niestandardowy motyw z odniesieniem do własnej animacji i zastosować go do swojej aktywności w pliku manifestu. Udało mi się zastosować niestandardową animację dla pływającego okna przy użyciu następującej definicji stylu. Możesz zrobić coś podobnego, jeśli ustawisz rodzica swojego stylu na " @ android: style / Animation.Aktywność "

Spójrz na następujące pliki, aby uzyskać więcej informacji na temat tego, co możesz override.

Https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml

Oto moja część moich stylów.XML i manifest.xml

Style.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
Author: Akos Cz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-13 05:27:22
startActivity(intent);
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);

Sprawdź ten link: overridePendingTransition method

Edit:

Aby uzyskać animację widoków. Musisz użyć metody startAnimation jak poniżej

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

Sprawdź ten link :

 6
Author: Praveen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-22 09:18:28

Nie ma znaczenia, że rozpoczynając od widżetu, napisałeś samouczek, dzięki któremu możesz animować swoją aktywność. Ta animacja jest ustawiona w aktywności, którą wprowadzasz w ostrość, więc możesz to zrobić również za pomocą pendingIntent.

Enjoy:

Http://blog.blundellapps.co.uk/animate-an-activity/

 -1
Author: Blundell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-04 11:21:38