SlideShare a Scribd company logo
1 of 96
Download to read offline
Stop Running from
Animations
IVAN MARIĆ, @MARIC_IV
ANDROID TEAM LEAD
https://www.ted.com/talks/
chris_hadfield_what_i_learned_from_going_blind_in_space
01JUST DO IT
02LEARN THE BASICS
PROPERTY ANIMATION
Powerful framework
Value oriented
Animate any object
VALUE ANIMATOR
Foundation of animations
Provide current value at any time
No target object
ValueAnimator
startValue
endValue
duration
Elapsed Time
Object 1
setTargetProperty()
getAnimatedValue()
Object n
setTargetProperty()
. . .
OBJECT ANIMATOR
Add target
Object instance
Object property
ObjectAnimator animatorX = ObjectAnimator
.ofFloat(animatedView, "translationX", 0, dx).setDuration(ANIM_DURATION);
ObjectAnimator animatorY = ObjectAnimator
.ofFloat(animatedView, "translationY", 0, dy).setDuration(ANIM_DURATION);
AnimatorSet animator = new AnimatorSet();
animator.playTogether(animatorX, animatorY);
animator.start();
OBJECT ANIMATOR
ObjectAnimator animatorX = ObjectAnimator
.ofFloat(animatedView, "translationX", 0, dx).setDuration(ANIM_DURATION);
ObjectAnimator animatorY = ObjectAnimator
.ofFloat(animatedView, "translationY", 0, dy).setDuration(ANIM_DURATION);
AnimatorSet animator = new AnimatorSet();
animator.playTogether(animatorX, animatorY);
animator.start();
OBJECT ANIMATOR
ObjectAnimator animatorX = ObjectAnimator
.ofFloat(animatedView, "translationX", 0, dx).setDuration(ANIM_DURATION);
ObjectAnimator animatorY = ObjectAnimator
.ofFloat(animatedView, "translationY", 0, dy).setDuration(ANIM_DURATION);
AnimatorSet animator = new AnimatorSet();
animator.playTogether(animatorX, animatorY);
animator.start();
OBJECT ANIMATOR
float getTranslationX() setTranslationX(float)
animatedView.animate()
.translationX(dx)
.translationY(dy)
.setDuration(ANIM_DURATION)
.start();
VIEW PROPERTY ANIMATION
DARK AGE
DARK AGE
VIEW ANIMATIONS
VIEW ANIMATION
Alpha
Scale
Translate
Rotate
Animation animation = new TranslateAnimation(0, dx, 0, dy);
animation.setDuration(ANIM_DURATION);
animation.setFillAfter(true);
animatedView.startAnimation(animation);
VIEW ANIMATION
Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0f,
Animation.RELATIVE_TO_PARENT, 0.9f,
Animation.RELATIVE_TO_PARENT, 0f,
Animation.RELATIVE_TO_PARENT, 0.9f);
animation.setDuration(ANIM_DURATION);
animation.setFillAfter(true);
animatedView.startAnimation(animation);
VIEW ANIMATION
VIEW ANIMATION MISCONCEPTIONS
Deprecated
Refactor
Don’t use them
Move & fade out text
Move & fade in text
Scale & fade out all
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/infinum_logo"
android:layout_above="@+id/firstText"/>
<TextView
android:id="@id/firstText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/first_text"/>
<TextView
android:id="@+id/secondText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_centerInParent="true"
android:text="@string/second_text"/>
</RelativeLayout>
Move & fade out text
TranslateAnimation moveOutText = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, -0.8f);
AlphaAnimation fadeOut = new AlphaAnimation(1f, 0f);
AnimationSet firstTextAnimation = new AnimationSet(true);
firstTextAnimation.addAnimation(moveText);
firstTextAnimation.addAnimation(fadeOut);
firstTextAnimation.setDuration(600);
Move & fade in text
TranslateAnimation moveInText = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0f);
AlphaAnimation fadeIn = new AlphaAnimation(0f, 1f);
AnimationSet secondTextAnimation = new AnimationSet(true);
secondTextAnimation.addAnimation(moveInText);
secondTextAnimation.addAnimation(fadeIn);
secondTextAnimation.setDuration(600);
secondTextAnimation.setFillAfter(true);
Scale & fade out all
ScaleAnimation logoScaleAnimation = new ScaleAnimation(
1f, 2f, 1f, 2f, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 1f);
ScaleAnimation textScaleAnimation = new ScaleAnimation(
1f, 2f, 1f, 2f, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0f);
AnimationSet logoAnim = new AnimationSet(true);
logoAnim.addAnimation(logoScaleAnimation);
logoAnim.addAnimation(fadeOut);
logoAnim.setDuration(800);
logoAnim.setStartOffset(800);
logoAnim.setFillAfter(true);
AnimationSet textAnim = new AnimationSet(true);
textAnim.addAnimation(textScaleAnimation);
textAnim.addAnimation(fadeOut);
textAnim.setDuration(800);
textAnim.setStartOffset(800);
textAnim.setFillAfter(true);
firstTextAnimation.setAnimationListener(
new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
firstText.setVisibility(View.INVISIBLE);
secondText.setVisibility(View.VISIBLE);
secondText.startAnimation(secondTextAnimation);
}
});
secondTextAnimation.setAnimationListener(
new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
logo.startAnimation(logoAnim);
secondText.startAnimation(textAnim);
}
});
firstText.startAnimation(firstTextAnimation);
firstText.animate().alpha(0f)
.translationY(firstText.getHeight())
.setDuration(600);
secondText.setTranslationY(secondText.getHeight() / 2);
secondText.setAlpha(0);
secondText.animate().alpha(1f)
.translationY(0)
.setDuration(600);
logo.setPivotX(logo.getWidth() / 2f);
logo.setPivotY(logo.getHeight());
secondText.setPivotX(secondText.getWidth() / 2f);
secondText.setPivotY(0);
logo.animate().alpha(0)
.scaleX(2).scaleY(2)
.setDuration(800).setStartDelay(800);
secondText.animate().alpha(0)
.scaleX(2).scaleY(2)
.setDuration(800).setStartDelay(800);
03PHYSICS MATTER
START
VALUE
END
VALUE
START
VALUE
END
VALUE
DURATION
INTERPOLATION
float getInterpolation (float input)
0 1
START END
INPUT
OUTPUT
Mappedvalue
0
0,2
0,4
0,6
0,8
1
1,2
Elapsed time
0 0,2 0,4 0,6 0,8 1
Linear Accelerate Overshoot
LINEAR ACCELERATE DECELERATE
LINEAR ACCELERATE DECELERATE
https://robots.thoughtbot.com/android-interpolators-a-visual-guide
AccelerateDecelerateInterpolator
AccelerateInterpolator
AnticipateInterpolator
AnticipateOvershootInterpolator
BounceInterpolator
CycleInterpolator
DecelerateInterpolator
FastOutLinearInInterpolator
FastOutSlowInInterpolator
LinearInterpolator
LinearOutSlowInInterpolator
OvershootInterpolator
PathInterpolator
04FOR EVERYTHING ELSE THERE
IS CANVAS
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
VIEW
HOW IT WORKS
Determine elapsed time
Calculate positions, sizes, colors….
Draw objects
Repeat → Invalidate view with delay
public class AnimatedDrawable extends Drawable
public AnimatedDrawable() {
// Init all Paint and other resources used in draw method
}
@Override
public void draw(Canvas canvas) {
}
}
public class AnimatedDrawable extends Drawable
implements Animatable {
public AnimatedDrawable() {
// Init all Paint and other resources used in draw method
}
@Override
public void draw(Canvas canvas) {
draw(canvas, (SystemClock.uptimeMillis() - startTime) / DURATION);
}
@Override
public void start() {
startTime = SystemClock.uptimeMillis();
}
}
public class AnimatedDrawable extends Drawable
implements Animatable, Runnable, Drawable.Callback {
public AnimatedDrawable() {
// Init all Paint and other resources used in draw method
}
@Override
public void draw(Canvas canvas) {
draw(canvas, (SystemClock.uptimeMillis() - startTime) / DURATION);
}
@Override
public void start() {
startTime = SystemClock.uptimeMillis();
}
@Override
public void run() {
invalidateSelf();
scheduleSelf(this, SystemClock.uptimeMillis() + FRAME_DELAY);
}
@Override
public void invalidateDrawable(Drawable who) {
who.invalidateSelf();
}
}
05MATH IS YOUR FRIEND
WHAT YOU NEED TO KNOW
Algebra
Trigonometry
Linear Algebra
Calculus
Geometry
Don’t have to be a math wizard
WHAT CAN YOU DO
Don’t slack on math class
Learn and research
Search practical use
WHAT CAN YOU DO
Probably too late for that
Learn and research
Search practical use
POLAR COORDINATES
(r, ϕ)
06MAKE A ROUTINE
TIME CONSUMPTION
Lot of tweaking
No motivation
Last thing on your list
TIME CONSUMPTION
Lot of tweaking
No motivation
Last thing on your list
Just like testing
07ANIMATE ALL THE THINGS
WHAT TO ANIMATE
Screen transitions
New information
Long running actions
User feedback
Boring screens
WHAT TO ANIMATE
Screen transitions
New information
Long running actions
User feedback
Boring screens
SCREEN TRANSITION
Reveal views
overridePendingTransition();
Custom and shared element transitions
XML configuration
WHAT TO ANIMATE
Screen transitions
New information
Long running actions
User feedback
Boring screens
WHAT TO ANIMATE
Screen transitions
New information
Long running actions
User feedback
Boring screens
WHAT TO ANIMATE
Screen transitions
New information
Long running actions
User feedback
Boring screens
WHAT TO ANIMATE
Screen transitions
New information
Long running actions
User feedback
Boring screens
08LOADING…
WHEN
Always for a long running actions
WHEN
Always for a long running actions
IMPROVE
Show it with a delay
Show it for some period of time
DRAWABLE ANIMATION
AnimationDrawable drawable = (AnimationDrawable) ContextCompat
.getDrawable(this, R.drawable.drawable_animation);
image.setImageDrawable(drawable);
drawable.start();
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/anim_000" android:duration="30"/>
<item android:drawable="@drawable/anim_001" android:duration="30"/>
<item android:drawable="@drawable/anim_002" android:duration="30"/>
<item android:drawable="@drawable/anim_003" android:duration="30"/>
<!--...-->
LOTTIE
https://airbnb.design/lottie/
09PERFECT TIMING
HUMAN PROCESSOR MODEL
Eye movement time 230 ms
Visual image storage 200 ms
Be quick, be readable
ANIMATION LISTENER
Avoid delays and offsets
onStart, onEnd, onRepeat
onCancel
onUpdate → SDK 19+
SOLUTION
ValueAnimator
Animation set
Custom or extend Animation
Drawable animation
10DON’T JUDGE BY YOURSELF
De gustibus non est
disputandum.
- IN MATTERS OF TASTE, THERE CAN BE NO DISPUTES
SHOW IT TO OTHERS
Colleagues, friends, family…
You can brag
Negative feedback
Thank you!
IVAN.MARIC@INFINUM.CO
@MARIC_IV
Visit infinum.co or find us on social networks:
infinum.co infinumco infinumco infinum

More Related Content

What's hot

Android Training (Animation)
Android Training (Animation)Android Training (Animation)
Android Training (Animation)Khaled Anaqwa
 
Streamy, Pipy, Analyticy
Streamy, Pipy, AnalyticyStreamy, Pipy, Analyticy
Streamy, Pipy, Analyticydarach
 
Pathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in UnityPathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in UnityStavros Vassos
 
The Ring programming language version 1.3 book - Part 38 of 88
The Ring programming language version 1.3 book - Part 38 of 88The Ring programming language version 1.3 book - Part 38 of 88
The Ring programming language version 1.3 book - Part 38 of 88Mahmoud Samir Fayed
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qtaccount inactive
 
HoloLens Programming Tutorial: AirTap & Spatial Mapping
HoloLens Programming Tutorial: AirTap & Spatial MappingHoloLens Programming Tutorial: AirTap & Spatial Mapping
HoloLens Programming Tutorial: AirTap & Spatial MappingTakashi Yoshinaga
 
The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30Mahmoud Samir Fayed
 
Java ME - 03 - Low Level Graphics E
Java ME - 03 - Low Level Graphics EJava ME - 03 - Low Level Graphics E
Java ME - 03 - Low Level Graphics EAndreas Jakl
 

What's hot (13)

Android Training (Animation)
Android Training (Animation)Android Training (Animation)
Android Training (Animation)
 
Streamy, Pipy, Analyticy
Streamy, Pipy, AnalyticyStreamy, Pipy, Analyticy
Streamy, Pipy, Analyticy
 
Pathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in UnityPathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in Unity
 
The Ring programming language version 1.3 book - Part 38 of 88
The Ring programming language version 1.3 book - Part 38 of 88The Ring programming language version 1.3 book - Part 38 of 88
The Ring programming language version 1.3 book - Part 38 of 88
 
Applications
ApplicationsApplications
Applications
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qt
 
YUI Evolved
YUI EvolvedYUI Evolved
YUI Evolved
 
libGDX: Tiled Maps
libGDX: Tiled MapslibGDX: Tiled Maps
libGDX: Tiled Maps
 
HoloLens Programming Tutorial: AirTap & Spatial Mapping
HoloLens Programming Tutorial: AirTap & Spatial MappingHoloLens Programming Tutorial: AirTap & Spatial Mapping
HoloLens Programming Tutorial: AirTap & Spatial Mapping
 
The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30
 
Game Lab
Game LabGame Lab
Game Lab
 
Java ME - 03 - Low Level Graphics E
Java ME - 03 - Low Level Graphics EJava ME - 03 - Low Level Graphics E
Java ME - 03 - Low Level Graphics E
 
Box2D and libGDX
Box2D and libGDXBox2D and libGDX
Box2D and libGDX
 

Similar to Stop Running from Animations in Android

14multithreaded Graphics
14multithreaded Graphics14multithreaded Graphics
14multithreaded GraphicsAdil Jafri
 
I wanted to change the cloudsrectangles into an actuall image it do.pdf
I wanted to change the cloudsrectangles into an actuall image it do.pdfI wanted to change the cloudsrectangles into an actuall image it do.pdf
I wanted to change the cloudsrectangles into an actuall image it do.pdffeelinggifts
 
CQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony applicationCQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony applicationSamuel ROZE
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionGilbert Guerrero
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionGilbert Guerrero
 
Artdm170 week6 scripting_motion
Artdm170 week6 scripting_motionArtdm170 week6 scripting_motion
Artdm170 week6 scripting_motionGilbert Guerrero
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionGilbert Guerrero
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionGilbert Guerrero
 
Enhancing UI/UX using Java animations
Enhancing UI/UX using Java animationsEnhancing UI/UX using Java animations
Enhancing UI/UX using Java animationsNaman Dwivedi
 
MIDP: Form Custom and Image Items
MIDP: Form Custom and Image ItemsMIDP: Form Custom and Image Items
MIDP: Form Custom and Image ItemsJussi Pohjolainen
 
Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...
Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...
Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...DroidConTLV
 
Please help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdfPlease help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdfJUSTSTYLISH3B2MOHALI
 
XNA L07–Skybox and Terrain
XNA L07–Skybox and TerrainXNA L07–Skybox and Terrain
XNA L07–Skybox and TerrainMohammad Shaker
 
Test beautycleanness
Test beautycleannessTest beautycleanness
Test beautycleannessbergel
 
Creating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdfCreating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdfShaiAlmog1
 

Similar to Stop Running from Animations in Android (20)

14multithreaded Graphics
14multithreaded Graphics14multithreaded Graphics
14multithreaded Graphics
 
Animations in Flutter
Animations in FlutterAnimations in Flutter
Animations in Flutter
 
I wanted to change the cloudsrectangles into an actuall image it do.pdf
I wanted to change the cloudsrectangles into an actuall image it do.pdfI wanted to change the cloudsrectangles into an actuall image it do.pdf
I wanted to change the cloudsrectangles into an actuall image it do.pdf
 
CQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony applicationCQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony application
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting Motion
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting Motion
 
Artdm170 week6 scripting_motion
Artdm170 week6 scripting_motionArtdm170 week6 scripting_motion
Artdm170 week6 scripting_motion
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting Motion
 
Artdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting MotionArtdm170 Week6 Scripting Motion
Artdm170 Week6 Scripting Motion
 
Enhancing UI/UX using Java animations
Enhancing UI/UX using Java animationsEnhancing UI/UX using Java animations
Enhancing UI/UX using Java animations
 
MIDP: Game API
MIDP: Game APIMIDP: Game API
MIDP: Game API
 
MIDP: Form Custom and Image Items
MIDP: Form Custom and Image ItemsMIDP: Form Custom and Image Items
MIDP: Form Custom and Image Items
 
Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...
Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...
Tricks to Making a Realtime SurfaceView Actually Perform in Realtime - Maarte...
 
Please help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdfPlease help!!I wanted to know how to add a high score to this prog.pdf
Please help!!I wanted to know how to add a high score to this prog.pdf
 
XNA L07–Skybox and Terrain
XNA L07–Skybox and TerrainXNA L07–Skybox and Terrain
XNA L07–Skybox and Terrain
 
Test beautycleanness
Test beautycleannessTest beautycleanness
Test beautycleanness
 
Qt Animation
Qt AnimationQt Animation
Qt Animation
 
Creating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdfCreating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdf
 
Applets
AppletsApplets
Applets
 
Android workshop
Android workshopAndroid workshop
Android workshop
 

Recently uploaded

Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝soniya singh
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...wyqazy
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...Niamh verma
 
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...Call girls in Ahmedabad High profile
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 

Recently uploaded (9)

Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
 
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 

Stop Running from Animations in Android