我觉得我将脱离这个论坛的背景,如果我愿意,请指引我走向正确的方向。
我要为网站创建一个360度旋转产品预览。例如:
http://uniqstudios.co.uk/vid-360/interactive-360-rotate-rich-media-2
我想知道是否有一种简单的方法,比如我们如何拥有全景照片应用程序,我是否可以使用某些应用程序创建这样的东西?或者有特定的相机来做它。
另外,请让我知道如何在网站上嵌入这些360度旋转图像。
提前致谢,指导我到正确的论坛,或者在这里帮助我。 Zeeshan。
答案 0 :(得分:12)
如果您有不同角度的2D图像(如果您有gif图像,则可以从中提取帧),您可以通过以下方式进行操作:
在drawable文件夹中定义一个axml:
<强> image_3D_images.xml 强>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/bg_01" />
<item android:maxLevel="1" android:drawable="@drawable/bg_02" />
<item android:maxLevel="2" android:drawable="@drawable/bg_03" />
<item android:maxLevel="3" android:drawable="@drawable/bg_04" />
<item android:maxLevel="4" android:drawable="@drawable/bg_05" />
</level-list>
然后用这样的imageview创建你的布局:
<强> activity_3d_view.xml:强>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/santafe3dview"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/image_3d_images"
android:scaleType="fitXY"
/>
</RelativeLayout>
然后在你的活动中编写以下代码:
<强> Launcher3DViewActivity.java:强>
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
setContentView(R.layout.activity_3d_view);
m360DegreeImageView = (ImageView)findViewById(R.id.santafe3dview);
}
@Override
public boolean onTouchEvent(MotionEvent event){
int action = MotionEventCompat.getActionMasked(event);
switch(action) {
case (MotionEvent.ACTION_DOWN) :
mStartX = (int)event.getX();
mStartY = (int)event.getY();
return true;
case (MotionEvent.ACTION_MOVE) :
mEndX = (int)event.getX();
mEndY = (int)event.getY();
if((mEndX - mStartX) > 3) {
mImageIndex++;
if(mImageIndex > 56 )
mImageIndex = 0;
m360DegreeImageView.setImageLevel(mImageIndex);
}
if((mEndX - mStartX) < -3) {
mImageIndex--;
if(mImageIndex <0)
mImageIndex = 56;
m360DegreeImageView.setImageLevel(mImageIndex);
}
mStartX = (int)event.getX();
mStartY = (int)event.getY();
return true;
case (MotionEvent.ACTION_UP) :
mEndX = (int)event.getX();
mEndY = (int)event.getY();
return true;
case (MotionEvent.ACTION_CANCEL) :
return true;
case (MotionEvent.ACTION_OUTSIDE) :
return true;
default :
return super.onTouchEvent(event);
}
}
答案 1 :(得分:5)
我为android 360-Productview-Android-App
创建了一个可拖动的360度视图用户可以在购物车网站中看到360度旋转图像,链接中描述了使用该应用程序的详细信息。请参阅应用程序的视频演示here
答案 2 :(得分:3)
图像上真实物体的问题在于你无法计算它们,所以每个视角都有自己的图像,所以基本上你需要有一个图像用于多个视图位置。
5°或甚至10°的角度已经看起来相对平滑。这样就可以显示72或36张图像,具体取决于您的视角。
我在一个应用程序中这样做,用手指滑动会根据位置带来另一个图像。
要获取这些图像,您需要进行安装,您可以在其中制作每个定义位置的图片。
请注意内存管理,并在不需要时正确卸载图像。