作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的应用中实现 Activity 转换。我遇到了一个很棒的here .但它只兼容android jellybean +。上面的链接重定向到 youtube,其中 Nick Butcher 显示了 View 中的 Activity 缩放转换。
我想在 Gingerbread (API 10)+ 上使用它。我怎样才能做到这一点?我想到的一个想法是获取该 View 在屏幕上的位置,将其传递给即将进行的 Activity ,然后要求即将进行的 Activity 从该位置缩放或变大。我不知道这是否可能。非常感谢任何想法或解决方案。
谢谢!
最佳答案
你可以使用这个动画,根据你的图像位置和屏幕大小改变XY,并在动画结束时开始你的 Activity ,这是一个技巧,希望对你有所帮助:
private void centerAndZoomView( View view)
{
RelativeLayout root = (RelativeLayout) findViewById( R.id.rootLayout );
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics( dm );
int statusBarOffset = dm.heightPixels - root.getMeasuredHeight();
int originalPos[] = new int[2];
view.getLocationOnScreen( originalPos );
int xDest = dm.widthPixels/2;
xDest -= (view.getMeasuredWidth()/2);
int yDest = dm.heightPixels/2 - (view.getMeasuredHeight()/2) - statusBarOffset;
TranslateAnimation anim = new TranslateAnimation( 0, xDest - originalPos[0] , 0, yDest - originalPos[1] );
Animation scale
= new ScaleAnimation(1.0f,root.getMeasuredWidth()/view.getMeasuredWidth() , 1.0f, root.getMeasuredHeight()/view.getMeasuredHeight(),
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
scale.setInterpolator(new AccelerateInterpolator());
AnimationSet set = new AnimationSet(false);
set.addAnimation(scale);
set.addAnimation(anim);
set.setFillAfter(true);
set.setDuration(10000);
//set.start();
view.startAnimation(set);
set.setAnimationListener(new AnimationListener()
{
@Override
public void onAnimationStart(Animation animation){}
@Override
public void onAnimationRepeat(Animation animation){}
@Override
public void onAnimationEnd(Animation animation)
{
Intent intent = new Intent(getApplication(), NextActivity.class);
startActivity(intent);
Toast.makeText(getApplicationContext(), "END OF ANIMATION", Toast.LENGTH_LONG).show();
}
});
}
我根据屏幕的宽高组合了TranslateAnimation和ScaleAnimation,你可以传任意View (Button, ImageView, LinarLayout...) 作为参数,你的根布局必须有“rootLayout”id。
关于android - 按钮的 Activity 缩放过渡 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21990003/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!