Explanations to the code that you requested:
private void moveViewToScreenCenter( View view ) { RelativeLayout root = (RelativeLayout) findViewById( R.id.rootLayout ); DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics( dm ); int statusBarOffset = dm.heightPixels - root.getMeasuredHeight();// размер экрана - высота rootLayout в пикселах(фактически высота statusBar) int originalPos[] = new int[2]; view.getLocationOnScreen( originalPos ); //позиция на экране view, x и y записываются в массив originalPos int xDest = dm.widthPixels/2; //середина экрана по х xDest -= (view.getMeasuredWidth()/2); //вычитаем половину ширины view int yDest = dm.heightPixels/2 - (view.getMeasuredHeight()/2) - statusBarOffset; //середина экрана по у вычитаем половину высоты view и вычитаем высоту statusBar TranslateAnimation anim = new TranslateAnimation( 0, xDest - originalPos[0] , 0, yDest - originalPos[1] );// анимация перемещения view, все параметры - дельты anim.setDuration(1000); anim.setFillAfter( true ); view.startAnimation(anim); }