读书人

TranslateAnimation 搬动动画

发布时间: 2012-09-28 00:03:35 作者: rapoo

TranslateAnimation 移动动画
实现两张图片的交替,像左边移动交替,像右边移动交替,图片左(右)出,右(左)进等。

public class Move extends AbstractAnimation {private float fromXDelta;private float toXDelta;private float fromYDelta;private float toYDelta;private ImageView view;private Context mContext;private boolean filpLeft;private boolean filpRight;//receive the Activitypublic Context getmContext() {return mContext;}public void setmContext(Context mContext) {this.mContext = mContext;}public boolean isFilpLeft() {return filpLeft;}public void setFilpLeft(boolean filpLeft) {this.filpLeft = filpLeft;}public boolean isFilpRight() {return filpRight;}public void setFilpRight(boolean filpRight) {this.filpRight = filpRight;}TranslateAnimation translateStart,translateEnd;public float getFromXDelta() {return fromXDelta;}public void setFromXDelta(float fromXDelta) {this.fromXDelta = fromXDelta;}public float getToXDelta() {return toXDelta;}public void setToXDelta(float toXDelta) {this.toXDelta = toXDelta;}public float getFromYDelta() {return fromYDelta;}public void setFromYDelta(float fromYDelta) {this.fromYDelta = fromYDelta;}public float getToYDelta() {return toYDelta;}public void setToYDelta(float toYDelta) {this.toYDelta = toYDelta;}@Overridepublic void performAnimation(Handler handler) { view = (ImageView)getTarget(); //isFilpLeft: when the UI add the String to move left isFilpLeft = true; if(isFilpLeft()){ translateStart = new TranslateAnimation(fromXDelta,toXDelta,fromYDelta,toYDelta); translateEnd = new TranslateAnimation(-toXDelta,fromXDelta,-toYDelta,fromYDelta); setFilpLeft(false); }else if(isFilpRight()){ translateStart = new TranslateAnimation(fromXDelta,-toXDelta,fromYDelta,-toYDelta); translateEnd = new TranslateAnimation(toXDelta,fromXDelta,toYDelta,fromYDelta); setFilpRight(false); } else{ translateStart = new TranslateAnimation(fromXDelta,toXDelta,fromYDelta,toYDelta); translateEnd = new TranslateAnimation(toXDelta,fromXDelta,toYDelta,fromYDelta); } translateStart.setDuration((long)(getDuration()*1000)); translateEnd.setDuration((long)(getDuration()*1000)); translateStart.setRepeatCount(getRepeat());   translateStart.setAnimationListener(new AnimationListener(){@Overridepublic void onAnimationStart(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationEnd(Animation animation) {//change the image when the activity call.if(mContext != null){Bitmap bmp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.image2);view.setImageBitmap(bmp);view.startAnimation(translateEnd);}else{view.startAnimation(translateEnd);}}@Overridepublic void onAnimationRepeat(Animation animation) {// TODO Auto-generated method stub} });handler.postDelayed(new Runnable() {@Overridepublic void run() {view.startAnimation(translateStart);}}, (long)(getDelay()*1000));}}

读书人网 >移动开发

热点推荐