J'ai un widget qui démarre une activité quand on clique dessus. J'aimerais avoir une sorte d'animation sophistiquée pour afficher cette activité, plutôt que le défilement standard à partir d'Android. J'ai du mal à le configurer, cependant. Voici ce que j'ai:
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>
... qui est référencé dans 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" />
Mais alors d'où dois-je y faire référence? J'ai essayé à la fois l'élément de base de l'activité dans laquelle je veux glisser et l'entrée de l'activité dans le manifeste, les deux fois avec
Android:layoutAnimation="@+anim/anim"
Je fais peut-être tout cela mal. Toute aide est très appréciée!
Vous pouvez créer un thème personnalisé avec une référence à votre propre animation et l'appliquer à votre activité dans votre fichier manifeste. J'ai réussi à appliquer une animation personnalisée pour une fenêtre flottante à l'aide de la définition de style suivante. Vous pourriez être en mesure de faire quelque chose de similaire si vous définissez le parent de votre style sur "@Android: style/Animation.Activity"
Consultez les fichiers suivants pour plus de détails sur ce que vous pouvez remplacer.
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
Voici une partie de mes styles.xml et 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>
startActivity(intent);
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
Vérifiez ce lien: méthode overridePendingTransition
Éditer:
Pour réaliser l'animation des vues. Vous avez utilisé la méthode startAnimation comme ci-dessous
view.startAnimation(AnimationUtils.loadAnimation(
WidgetActivity.this,R.anim.slide_top_to_bottom));
Vérifiez cela lien :