Hats off to you man ...you are a life saver.

Although the animation with this code is not smoother like the one in the 
video but its as smooth as it can be and its good in terms of lines of code 
and other unnecessary stuffs i used to achieve. check this out and provide 
me your feedback
http://youtu.be/BrIJ-1HblIY

On Thursday, 17 January 2013 13:59:16 UTC+5:30, skink wrote:
>
>
>
> On 12 Sty, 19:40, Ansh <yourans...@gmail.com> wrote: 
> > Hi guys 
> > 
> > I am new to animation in android.I am trying to translate  childitem/ of 
> a 
> > listview.First child view should translate from middle to top of the 
> list 
> > and the list should also slide down during the translate animation and 
> make 
> > the space of the view being translated.Please help me guys as it has 
> eaten 
> > up my mind for  past 3days. 
> > 
> > i am trying to achieve exactly the same in this video.
> http://youtu.be/xPLhfEJuz4k 
>
> here you have sample code to start with: 
>
> import android.app.Activity; 
> import android.app.AlertDialog; 
> import android.content.DialogInterface; 
> import android.content.DialogInterface.OnClickListener; 
> import android.os.Bundle; 
> import android.view.View; 
> import android.view.animation.AlphaAnimation; 
> import android.view.animation.Animation; 
> import android.view.animation.TranslateAnimation; 
> import android.widget.AdapterView; 
> import android.widget.AdapterView.OnItemClickListener; 
> import android.widget.ArrayAdapter; 
> import android.widget.EditText; 
> import android.widget.ListView; 
>
> public class AnimatedListActivity extends Activity implements 
> OnItemClickListener, OnClickListener, Runnable { 
>         private final static String TAG = "AnimatedListActivity"; 
>         private ArrayAdapter<String> mAdapter; 
>         private int mInsertPosition; 
>
>         @Override 
>         protected void onCreate(Bundle savedInstanceState) { 
>                 super.onCreate(savedInstanceState); 
>                 setContentView(R.layout.lv); 
>                 ListView lv = (ListView) findViewById(R.id.lv); 
>                 lv.setClipChildren(false); 
>                 lv.setOnItemClickListener(this); 
>                 lv.setDivider(null); 
>                 mAdapter = new ArrayAdapter<String>(this, 
> android.R.layout.simple_list_item_1); 
>                 mAdapter.add("10"); 
>                 mAdapter.add("20"); 
>                 mAdapter.add("30"); 
>                 mAdapter.add("40"); 
>                 mAdapter.add("50"); 
>                 mAdapter.add("60"); 
>                 mAdapter.add("70"); 
>                 mAdapter.add("80"); 
>                 mAdapter.add("90"); 
>                 lv.setAdapter(mAdapter); 
>         } 
>
>         @Override 
>         public void onItemClick(AdapterView<?> parent, View view, int 
> position, long id) { 
>                 AlertDialog.Builder b = new AlertDialog.Builder(this); 
>                 b.setPositiveButton(android.R.string.ok, this); 
>                 b.setTitle("Enter Integer"); 
>                 EditText et = new EditText(this); 
>                 et.setId(99); 
>                 b.setView(et); 
>                 b.show(); 
>         } 
>
>         @Override 
>         public void onClick(DialogInterface dialog, int which) { 
>                 AlertDialog d = (AlertDialog) dialog; 
>                 EditText et = (EditText) d.findViewById(99); 
>                 String newItem = et.getText().toString(); 
>
>                 ListView lv = (ListView) findViewById(R.id.lv); 
>                 int cnt = mAdapter.getCount(); 
>                 for (int i = 0; i < cnt; i++) { 
>                         String item = mAdapter.getItem(i); 
>                         if (newItem.compareTo(item) < 0) { 
>                                 mAdapter.insert(newItem, i); 
>                                 mInsertPosition = i; 
>                                 lv.setSelection(i); 
>                                 lv.post(this); 
>                                 break; 
>                         } 
>                 } 
>         } 
>
>         @Override 
>         public void run() { 
>                 ListView lv = (ListView) findViewById(R.id.lv); 
>                 // here animations start 
>                 int first = lv.getFirstVisiblePosition(); 
>                 int last = lv.getLastVisiblePosition(); 
>                 for (int k = 0; k < last - first + 1; k++) { 
>                         View child = lv.getChildAt(k); 
>                         int pos = lv.getPositionForView(child); 
>                         Animation animation = null; 
>                         if (pos == mInsertPosition) { 
>                                 // instead of alpha animation you can make 
> your 
>                                 // new inserted item move here 
>                                 animation = new AlphaAnimation(0, 1); 
>                         } else 
>                         if (pos > mInsertPosition) { 
>                                 animation = new TranslateAnimation( 
>                                                 Animation.ABSOLUTE, 0, 
> Animation.ABSOLUTE, 0, 
>                                                 Animation.RELATIVE_TO_SELF, 
> -1, Animation.RELATIVE_TO_SELF, 0); 
>                         } 
>                         if (animation != null) { 
>                                 animation.setDuration(750); 
>                                 child.startAnimation(animation); 
>                         } 
>                 } 
>         } 
> } 
>
>
> pskink 
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to