Make new android project name it as you want to. Create a new folder named anim in res directory and then create four new xml file under anim folder : move1.xml, move2.xml, move3.xml, move4.xml. Each xml file to animate each image below. Put these four images (or you can use yours with size 50x60px each) in drawable-mdpi folder. 


Set four imageview in
activity_main.xml and place each of them at each corner of the screen. In tween
animation xml files (move1.xml, move2.xml, move3.xml, move4.xml) we define a
combination animation elements (scale,translate,alpha) in sequence. Almost all
attribute in these elements are self-explain except pivotX=”50%” and
pivotY=”50%” in scale mean that it will zoomed base on 50% relative to itself,
if 50 (without %) mean relative to parent. Attribute startOffset mean time
delay in ms before animation start, this attribute is the most important in
sequential animation. Each tween animation file will animate each imageview. In MainActivity.java just
inflate all imageview and set image resource with each drawable image above.
Load animation use AnimationUtils.loadAnimation and set background resource of
imageview with animation xml files. Then set onClickListener for one of
imageview and inside onClick callback methode start animation use
startAnimation.
activity_main.xml
move1.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rl1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ff000000"> <ImageView android:id="@+id/comboimg1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true"/> <ImageView android:id="@+id/comboimg2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true"/> <ImageView android:id="@+id/comboimg3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true"/> <ImageView android:id="@+id/comboimg4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true"/> </RelativeLayout>
move2.xml<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <scale android:duration="500" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="4" android:toYScale="4" android:repeatCount="1" android:repeatMode="reverse" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="160" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="210" android:startOffset="500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="120" android:startOffset="1500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-100" android:startOffset="2000" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="-120" android:startOffset="2500" android:interpolator="@android:anim/linear_interpolator" /> <alpha android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="3500" android:repeatCount="1" android:repeatMode="reverse" android:interpolator="@android:anim/decelerate_interpolator"/> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="120" android:startOffset="3500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="-120" android:startOffset="4500" android:interpolator="@android:anim/linear_interpolator" /> </set>
move3.xml<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <scale android:duration="500" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="4" android:toYScale="4" android:repeatCount="1" android:repeatMode="reverse" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-210" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="210" android:startOffset="500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="50" android:startOffset="2000" android:interpolator="@android:anim/linear_interpolator" /> <alpha android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="4000" android:repeatCount="1" android:repeatMode="reverse" android:interpolator="@android:anim/decelerate_interpolator"/> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="120" android:startOffset="4000" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="-120" android:startOffset="5000" android:interpolator="@android:anim/linear_interpolator" /> </set>
move4.xml><?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <scale android:duration="500" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="4" android:toYScale="4" android:repeatCount="1" android:repeatMode="reverse" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="210" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="-185" android:startOffset="500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-50" android:startOffset="2000" android:interpolator="@android:anim/linear_interpolator" /> <alpha android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="4500" android:repeatCount="1" android:repeatMode="reverse" android:interpolator="@android:anim/decelerate_interpolator"/> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="120" android:startOffset="4500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="-120" android:startOffset="5500" android:interpolator="@android:anim/linear_interpolator" /> </set>
MainActivity.java<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <scale android:duration="500" android:fromXScale="1" android:fromYScale="1" android:pivotX="50%" android:pivotY="50%" android:toXScale="4" android:toYScale="4" android:repeatCount="1" android:repeatMode="reverse" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-160" android:startOffset="0" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="-185" android:startOffset="500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="-120" android:startOffset="1500" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="100" android:startOffset="2000" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="120" android:startOffset="2500" android:interpolator="@android:anim/linear_interpolator" /> <alpha android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" android:startOffset="5000" android:repeatCount="1" android:repeatMode="reverse" android:interpolator="@android:anim/decelerate_interpolator"/> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="120" android:startOffset="5000" android:interpolator="@android:anim/linear_interpolator" /> <translate android:duration="1000" android:fromYDelta="0" android:toYDelta="-120" android:startOffset="6000" android:interpolator="@android:anim/linear_interpolator" /> </set>
package com.example.animcombo; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; public class MainActivity extends Activity { ImageView comboimg1,comboimg2,comboimg3,comboimg4; Animation animcombo1,animcombo2,animcombo3,animcombo4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); animcombo1 = AnimationUtils.loadAnimation(this,R.anim.move1); animcombo2 = AnimationUtils.loadAnimation(this,R.anim.move2); animcombo3 = AnimationUtils.loadAnimation(this,R.anim.move3); animcombo4 = AnimationUtils.loadAnimation(this,R.anim.move4); comboimg1 = (ImageView) findViewById(R.id.comboimg1); comboimg1.setImageResource(R.drawable.hurufh); comboimg2 = (ImageView) findViewById(R.id.comboimg2); comboimg2.setImageResource(R.drawable.hurufe); comboimg3 = (ImageView) findViewById(R.id.comboimg3); comboimg3.setImageResource(R.drawable.hurufl); comboimg4 = (ImageView) findViewById(R.id.comboimg4); comboimg4.setImageResource(R.drawable.hurufo); comboimg1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { comboimg1.startAnimation(animcombo1); comboimg2.startAnimation(animcombo2); comboimg3.startAnimation(animcombo3); comboimg4.startAnimation(animcombo4); } }); } }



No comments:
Post a Comment