Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Displaying activity with custom animation

I have a widget which starts an activity when it is clicked. I'd like to have some kind of fancy animation to display this activity, rather than the standard scroll-from-right of Android. I'm having problems setting it, though. This is what I have:

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> 

...which is referenced in 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" /> 

But then where do I reference it from? I've tried both the base element of the activity I want to slide in, and the activitiy's entry in the manifest, both times with

android:layoutAnimation="@+anim/anim" 

I might be doing this all wrong. Any help is much appreciated!

like image 770
blork Avatar asked Jun 21 '10 18:06

blork


People also ask

What is transition animation in Android?

Android's transition framework allows you to animate all kinds of motion in your UI by simply providing the starting layout and the ending layout.

How do you animate visibility on Android?

The easiest way to animate Visibility changes is use Transition API which available in support (androidx) package. Just call TransitionManager. beginDelayedTransition method then change visibility of the view. There are several default transitions like Fade , Slide .


2 Answers

You can create a custom Theme with a reference to your own animation and apply it to your Activity in your manifest file. I was successful in applying a custom animation for a floating window using the following style definition. You might be able to do something similar if you set the parent of your style to be "@android:style/Animation.Activity"

Look at the following files for further details on what you can 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

Here's my a portion of my styles.xml and 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> 
like image 127
Akos Cz Avatar answered Sep 25 '22 13:09

Akos Cz


startActivity(intent); overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold); 

Check this link: overridePendingTransition method

Edit:

To Achieve the Animation for the Views. You have use the startAnimation Method like below

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

Check this link:

like image 23
Praveen Avatar answered Sep 21 '22 13:09

Praveen