首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中像3d动画一样翻转图像?

如何在android中像3d动画一样翻转图像?
EN

Stack Overflow用户
提问于 2011-12-01 19:11:48
回答 2查看 10.8K关注 0票数 1

我有3d图像,例如1-10个图像

其中我从前面到后面有(1-5)个3d形状的图像,从左到右,类似的从前到右(6-10)

如果我们看一下它们,一个完整的3d形状就形成了,我想用它们来左右滑动/翻转,这样就可以显示该图像的完整3d视图。

我见过这个例子,但它离我的视图flipper和swipe很远。http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html

有谁能指导我如何做到这一点吗?

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-31 08:07:51

您可以通过在Raghav Chopra的3D翻转库https://code.google.com/p/android-3d-flip-view-transition上构建来添加逼真的3D翻转过渡。

这样,您所要做的就是不再调用flipper.showNext();,而是调用AnimationFactory.flipTransition(flipper, FlipDirection.LEFT_RIGHT);,这样就完成了。3D动画非常酷。

许多其他教程和示例代码(包括您正在使用的)无法生成可信的3D翻转。简单地在y轴上旋转是不够的,所以看看上面的链接(或者这个视频http://youtu.be/52mXHqX9f3Y)。

如果您想让它自动转换,只需添加一个Handler,如下所示:

代码语言:javascript
复制
Handler handler = new Handler();
...
handler.postDelayed(new Runnable() {
    AnimationFactory.flipTransition(flipper, FlipDirection.LEFT_RIGHT);
}, 500);

上面的图片会无限期地翻转(循环回到最后的第一张图片)。要停止自动过渡,您可以添加一个布尔标志,您可以在开始翻转之前检查该标志,或者保存您正在使用的Runnable并调用handler.removeCallbacks(runnable)

票数 3
EN

Stack Overflow用户

发布于 2011-12-01 19:23:05

用于翻转的xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/flip_me"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Flip Me!"
/>
<ViewFlipper android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FF00FF00"
android:text="This is the first panel"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FFFF0000"
android:text="This is the second panel"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FFFFFF00"
android:text="This is the third panel"
/>
</ViewFlipper>
</LinearLayout>

java文件

代码语言:javascript
复制
public class FlipperDemo extends Activity {
ViewFlipper flipper;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
flipper=(ViewFlipper)findViewById(R.id.details);
Button btn=(Button)findViewById(R.id.flip_me);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.showNext();
}
});
}
}

这是手动翻转

结果是一个微不足道的活动:单击该按钮,将按顺序显示下一个TextView,并在查看最后一个之后折回到第一个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8340396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档