我有3d图像,例如1-10个图像
其中我从前面到后面有(1-5)个3d形状的图像,从左到右,类似的从前到右(6-10)
如果我们看一下它们,一个完整的3d形状就形成了,我想用它们来左右滑动/翻转,这样就可以显示该图像的完整3d视图。
我见过这个例子,但它离我的视图flipper和swipe很远。http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html
有谁能指导我如何做到这一点吗?
任何帮助都将不胜感激。
发布于 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,如下所示:
Handler handler = new Handler();
...
handler.postDelayed(new Runnable() {
AnimationFactory.flipTransition(flipper, FlipDirection.LEFT_RIGHT);
}, 500);上面的图片会无限期地翻转(循环回到最后的第一张图片)。要停止自动过渡,您可以添加一个布尔标志,您可以在开始翻转之前检查该标志,或者保存您正在使用的Runnable并调用handler.removeCallbacks(runnable)。
发布于 2011-12-01 19:23:05
用于翻转的xml
<?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文件
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,并在查看最后一个之后折回到第一个
https://stackoverflow.com/questions/8340396
复制相似问题