3d在片段里面的轻碰动画

时间:2015-11-09 12:11:08

标签: android image animation android-fragments flip

我想在片段内的两个图像视图上实现3d翻转动画。 我有两个人体图像,即正面和背面。我想要的是当用户点击按钮时将前图像翻转到后面。所有这些都在标签片段中。

我在1个多小时内搜索这个,但没有得到任何有用的东西。 我得到了一些与锄头相关的结果,用于实现带有碎片的3d翻转动画,但没有得到任何与我想要的相关的东西。

请有人帮我这个吗?

由于

2 个答案:

答案 0 :(得分:2)

我认为你看起来像这样。

 image1 = (ImageView) findViewById(R.id.ImageView01);
 image2 = (ImageView) findViewById(R.id.ImageView02);
 image2.setVisibility(View.GONE);



image1.setOnClickListener(new View.OnClickListener() {
  public void onClick(View view) {
  if (isFirstImage) {       
  applyRotation(0, 90);
  isFirstImage = !isFirstImage;

  } else {    
  applyRotation(0, -90);
 isFirstImage = !isFirstImage;
 }
 }
});      




private void applyRotation(float start, float end) {
// Find the center of image
final float centerX = image1.getWidth() / 2.0f;
final float centerY = image1.getHeight() / 2.0f;

// Create a new 3D rotation with the supplied parameter
// The animation listener is used to trigger the next animation
final Flip3dAnimation rotation =
   new Flip3dAnimation(start, end, centerX, centerY);
rotation.setDuration(500);
rotation.setFillAfter(true);
rotation.setInterpolator(new AccelerateInterpolator());
rotation.setAnimationListener(new DisplayNextView(isFirstImage,    image1,   image2));

if (isFirstImage)
{
image1.startAnimation(rotation);
} else {
image2.startAnimation(rotation);
}

}

您可以从这里找到完整的来源 http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html

希望它可以帮助你。祝你好运

答案 1 :(得分:1)

"翻转"使用ObjectAnimator动画非常简单。示例实现可以是:

ObjectAnimator animator = ObjectAnimator.ofFloat(mImageView, "rotationY", 0F, 360F);
animator.setDuration(1000);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.start();

这应该翻转你的ImageView并给你一个开始的地方。

修改:您可以将第一个ImageView翻转180F(以便它有效地变为不可见),然后使用AnimatorListener启动另一个翻转在第二个ImageView上,也在180F,所以看起来一个图片已转换为另一个。