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