gpt4 book ai didi

android - 按钮的 Activity 缩放过渡 - Android

转载 作者:行者123 更新时间:2023-11-30 03:04:42 24 4
gpt4 key购买 nike

我正在尝试在我的应用中实现 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com