当前位置:   article > 正文

Android 360度全景图功能

Android 360度全景图功能

方法一:OpenGL ES

1.在build.gradle文件中添加依赖

  1. allprojects {
  2. repositories {
  3. maven { url 'https://jitpack.io' }
  4. }
  5. }

高版本AS中settings.gradle.kts:

  1. dependencyResolutionManagement {
  2. repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  3. repositories {
  4. google()
  5. mavenCentral()
  6. maven { url = uri("https://jitpack.io") }
  7. }
  8. }

2.添加库依赖

compile 'com.github.CN-ZPH:weibo360panorama:v1.0.1'

高版本AS中:

implementation("com.github.CN-ZPH:weibo360panorama:v1.0.1")

3.添加布局文件

  1. <com.zph.glpanorama.GLPanorama
  2. android:id="@+id/mGLPanorama"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. </com.zph.glpanorama.GLPanorama>

4.传入你的全景图

  1. public class Main2Activity extends AppCompatActivity {
  2. private GLPanorama mGLPanorama;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main2);
  7. //初始化全景控件
  8. mGLPanorama= (GLPanorama) findViewById(R.id.mGLPanorama);
  9. mGLPanorama.setGLPanorama(R.drawable.bbb);
  10. }
  11. }

示例如下:

方法二:Google VR

1.添加依赖

目前GitHub上最新版本号为1.8.0,我这里也用最新的了。 
最低支持到 minSdkVersion 19 也就是Android 4.4.0 
在 build.gradle 文件中添加库依赖:

  1. dependencies {
  2. compile 'com.google.vr:sdk-panowidget:1.80.0'
  3. }

2.创建布局

  1. <com.google.vr.sdk.widgets.pano.VrPanoramaView
  2. android:id="@+id/mVrPanoramaView"
  3. android:layout_width="match_parent"
  4. android:layout_height="250dip"/>

3.AndroidManifest中添加权限

  1. <!-- These permissions are used by Google VR SDK to get the best Google VR headset profiles. !-->
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  4. //因为全景图较大,所以在application下申请更多空间,但是作为一个有节操的码农建议你不要这么干。
  5. <application android:largeHeap="true" </application>

4.Activity中初始化组件

  1. //初始化VR图片
  2. private void initVrPaNormalView() {
  3. mVrPanoramaView = (VrPanoramaView) findViewById(R.id.mVrPanoramaView);
  4. VrPanoramaView.Options paNormalOptions = new VrPanoramaView.Options();
  5. paNormalOptions.inputType = VrPanoramaView.Options.TYPE_STEREO_OVER_UNDER;
  6. // mVrPanoramaView.setFullscreenButtonEnabled (false); //隐藏全屏模式按钮
  7. mVrPanoramaView.setInfoButtonEnabled(false); //设置隐藏最左边信息的按钮
  8. mVrPanoramaView.setStereoModeButtonEnabled(false); //设置隐藏立体模型的按钮
  9. mVrPanoramaView.setEventListener(new ActivityEventListener()); //设置监听
  10. //加载本地的图片源
  11. mVrPanoramaView.loadImageFromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.andes), paNormalOptions);
  12. //设置网络图片源
  13. // panoWidgetView.loadImageFromByteArray();
  14. }
  15. private class ActivityEventListener extends VrPanoramaEventListener {
  16. @Override
  17. public void onLoadSuccess() {//图片加载成功
  18. }
  19. @Override
  20. public void onLoadError(String errorMessage) {//图片加载失败
  21. }
  22. @Override
  23. public void onClick() {//当我们点击了VrPanoramaView 时候触发 super.onClick();
  24. }
  25. @Override
  26. public void onDisplayModeChanged(int newDisplayMode) {
  27. super.onDisplayModeChanged(newDisplayMode);
  28. }
  29. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/530948
推荐阅读
相关标签
  

闽ICP备14008679号