我想在片段内的两个图像视图上实现3d翻转动画。 我有两个人体图像,即正面和背面。我想要的是当用户点击按钮时将前图像翻转到后面。所有这些都在标签片段中。
我在1个多小时内搜索这个,但没有得到任何有用的东西。 我得到了一些与锄头相关的结果,用于实现带有碎片的3d翻转动画,但没有得到任何与我想要的相关的东西。
请有人帮我这个吗?
由于
答案 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
,所以看起来一个图片已转换为另一个。