创建一个较慢的过渡。 TransitionManager.beginDelayedTransition(); 太快了

我正在创建一个过渡。 单击按钮时,将执行以下方法。 该方法改变了图像视图的大小和位置,并将其淡化。 我正在使用TransitionManager.beginDelayedTransition(); is too fast. TransitionManager.beginDelayedTransition(); is too fast. 减缓过渡..但它仍然太快了。 我该怎么做才能减缓过渡期。 谢谢。

 private void moveIcon() { View moveableIcon = findViewById(R.id.moveableImageView); TransitionManager.beginDelayedTransition(myLayout); // change the position of the icon RelativeLayout.LayoutParams positionRule = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT , RelativeLayout.LayoutParams.WRAP_CONTENT); positionRule.addRule(RelativeLayout.ALIGN_PARENT_TOP , RelativeLayout.TRUE); positionRule.addRule(RelativeLayout.ALIGN_PARENT_LEFT , RelativeLayout.TRUE); moveableIcon.setLayoutParams(positionRule); // change the size of the button ViewGroup.LayoutParams sizeRules = moveableIcon.getLayoutParams(); sizeRules.width = 50; sizeRules.height = 50; moveableIcon.setLayoutParams(sizeRules); fadeOutAndHideImage(image); } private void fadeOutAndHideImage(final ImageView img) { Animation fadeOut = new AlphaAnimation(1, 0); fadeOut.setInterpolator(new AccelerateInterpolator()); fadeOut.setDuration(1000); fadeOut.setAnimationListener(new Animation.AnimationListener() { public void onAnimationEnd(Animation animation) { img.setVisibility(View.GONE); } public void onAnimationRepeat(Animation animation) {} public void onAnimationStart(Animation animation) {} }); img.startAnimation(fadeOut); } 

尝试使用此方法: beginDelayedTransition(android.view.ViewGroup, android.transition.Transition)

 AutoTransition autoTransition = new AutoTransition(); autoTransition.setDuration(3000); TransitionManager.beginDelayedTransition(myLayout, autoTransition); 

而不是使用TransitionManager.beginDelayedTransition(myLayout); 使用TransitionManager.go()

TransitionManager.beginDelayedTransition(myLayout);最常使用的TransitionManager.beginDelayedTransition(myLayout); 是ChangeBounds 。 您可以轻松地设置此ChangeBounds转换的持续时间,然后告诉TransitionManager运行它:

 private void moveIcon() { View moveableIcon = findViewById(R.id.moveableImageView); // change the position of the icon RelativeLayout.LayoutParams positionRule = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT , RelativeLayout.LayoutParams.WRAP_CONTENT); positionRule.addRule(RelativeLayout.ALIGN_PARENT_TOP , RelativeLayout.TRUE); positionRule.addRule(RelativeLayout.ALIGN_PARENT_LEFT , RelativeLayout.TRUE); moveableIcon.setLayoutParams(positionRule); // change the size of the button ViewGroup.LayoutParams sizeRules = moveableIcon.getLayoutParams(); sizeRules.width = 50; sizeRules.height = 50; moveableIcon.setLayoutParams(sizeRules); ChangeBounds myTransition = new ChangeBounds(); myTransition.setDuration(1000L); TransitionManager.go(new Scene(myLayout), myTransition); fadeOutAndHideImage(image); } 

希望这可以帮助。