Я хочу переместить некоторый вид из любой позиции в центр экрана и масштаб параллельно. Если это слишком сложно, перевести и шкала также приемлемо. Но я не мог этого добиться. Я думаю, что это проблема с точкой опоры. Но, к сожалению, я не нашел решения. Пожалуйста помоги. Может быть, это легко для тех, кто разрабатывает игры, о которых я ничего не делал.Режимы перевода и масштабирования параллельно
Ниже мой код:
private void moveViewToScreenCenter(final View view){
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int statusBarOffset = dm.heightPixels - rootLayout.getMeasuredHeight();
int originalPos[] = new int[2];
view.getLocationOnScreen(originalPos);
int xDelta = (dm.widthPixels - view.getMeasuredWidth())/2 - originalPos[0];
int yDelta = (dm.heightPixels - view.getMeasuredHeight())/2 + statusBarOffset - originalPos[1];
AnimationSet animSet = new AnimationSet(true);
animSet.setFillAfter(true);
animSet.setDuration(1000);
animSet.setInterpolator(new BounceInterpolator());
TranslateAnimation translate = new TranslateAnimation(0, xDelta , 0, yDelta);
animSet.addAnimation(translate);
ScaleAnimation scale = new ScaleAnimation(1f, 2f, 1f, 2f, ScaleAnimation.RELATIVE_TO_PARENT, .5f, ScaleAnimation.RELATIVE_TO_PARENT, .5f);
animSet.addAnimation(scale);
view.startAnimation(animSet);
}
Update: код выше может обрабатывать ImageView из верхнего левого региона, те из нижней правой области идет по диагонали через экран и исчезает.
Вашего 'animSet.setFillAfter (истина);' спас мой день :) – User3
но это не работает для меня :( –