【发布时间】:2013-12-17 16:29:55
【问题描述】:
我想将一些视图从任何位置移动到屏幕的中心并平行缩放。如果这太复杂,translate 和 scale 顺序也是可以接受的。但我都达不到。我认为这是枢轴点的问题。但很抱歉我没有找到解决方案。请帮忙。也许对那些开发游戏的人来说这很容易,而我对此没有采取任何行动。
下面是我的代码:
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);
}
更新: 上面的代码可以处理左上区域的图像视图,右下区域的图像视图斜穿过屏幕并消失。
【问题讨论】:
标签: android parallel-processing scale translate-animation