传送门 ☞轮子的专栏 ☞转载请注明 ☞ http://blog.csdn.net/leverage_1229

介绍

本指南将介绍一个PanoramaGL 0.1类库的简单用法,更多的细节请签出 HelloPanoramaGL示例查看。

细节

1如何导入PanoramaGL类库?

1.1从源代码中导入

(1)下载PanoramaGL_0.1.zip或从代码仓库下载源代码

(2)如果你下载zip文件然后解压该文件

(3)在Eclipse中导入PanoramaGL项目:

    点击“File”选择“Import”菜单;

    选择“General”目录中的“Existing Projects into Workspace”,点击“Next”按钮;

    点击“Browse”按钮,选择PanoramaGL项目文件夹

    点击“Finish”按钮。

(4)右键单击你的项目并选择“Properties”选项

(5)选择左侧面板“Android”选项

(6)找到右侧面板“Library”部分,点击“Add...”按钮

(7)选择“PanoramaGL”类库,点击“OK”按钮

(8)在属性窗口的右下角选择“OK”按钮表示接受更改

1.2从编译后的文件中导入

(1)下载libglues.zip

(2)解压zip文件并复制到你的项目的“libs”文件夹中

(3)下载PanoramaGL 0.1.jar

(4)复制jar文件到你的项目的“libs”文件夹中

(5)在你的项目中导入jar文件:

    右键单击你的项目并选择“Properties”选项;

    选择左侧面板“Java Build Path”选项;

    选择“Libraries”选项卡;

    点击“Add JARs”按钮;

    在你的项目中选择“libs/PanoramaGL_0.1.jar”文件;

    点击“OK”按钮;

    在属性窗口的右下角选择“OK”按钮表示接受更改。

2在应用程序中如何使用PanoramaGL?

(1)如前面描述那样导入类库

(2)在“res/raw”文件夹中导入一个球面图像(如:pano_sphere.jpg)

(3)在Activity中,你需要构建一个全景图像的查看器,具体做法如下:

继承PLView类

public class YourActivity extends PLView

在onCreate()方法中加载全景图像

 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PLSphericalPanorama panorama = new PLSphericalPanorama();
panorama.setImage(this.getCurrentGL(), PLImage.imageWithBitmap(PLUtils.getBitmap(this, R.raw.pano_sphere)));
this.setPanorama(panorama);
}

注意:如果有必要的话,你也可以从其他方法中加载全景图像或事件。

3简单JSON协议

同样,你可以使用JSON协议加载全景图像。

注意:在该版本中,JSON协议被限制只处理本地文件。

3.1源代码

this.load(new PLJSONLoader(this, "res://raw/json_spherical"));

注意:在我的应用程序的“res/raw”文件夹中有一个名为“json_spherical.data”的文件,可以使用这段代码加载。或

this.load(new PLJSONLoader(this, "file:///sdcard/files/json_spherical.data"));

注意:在Android设备的“/sdcard/files”文件夹中有一个名为“json_spherical.data”的文件,可以使用这段代码加载。

3.2JSON协议

{
"urlBase": "file:///sdcard/files", //URL base where the files are
//The options are res:// for application resources and file:// for file system (this feature will be improved to support the http protocol)
"type": "spherical", //Panorama type: [spherical, spherical2, cubic, cylindrical]
"sensorialRotation": false, //Automatic rotation using sensors [true, false] <Optional>
"scrolling": //Scrolling section <Optional>
{
"enabled": false //Enable scrolling feature [true, false] <Optional>
},
"inertia": //Inertia section <Optional>
{
"enabled": false, //Enable inertia feature [true, false] <Optional>
"interval": 3 //Inertia's interval in seconds <Optional>
},
"accelerometer": //Accelerometer section <Optional>
{
"enabled": false, //Enable the accelerometer feature [true, false] <Optional>
"interval": 0.033, //Update interval of accelerometer (this value must be calculated as 1/frequency) <Optional>
"sensitivity": 10.0, //Sensitivity of the accelerometer <Optional>
"leftRightEnabled": true, //Enable the direction of movement with the accelerometer (left/right) <Optional>
"upDownEnabled": false //Enable the direction of movement with the accelerometer (up/down) <Optional>
},
"images": //Panoramic images section
//A property can be a name e.g. preview.jpg, preview or URL e.g. file:///sdcard/files/preview.jpg, res://raw/preview
//if a property only have a name, the real path will be the urlBase + image name
{
"preview": "preview.jpg", //Preview image name or URL (this option will be used with http protocol) <Optional>
"image": "pano.jpg" //Panoramic image name or URL for spherical, spherical2 and cylindrical panoramas
"front": "front.jpg", //Front image name or URL for cubic panorama (only use with cubic panorama)
"back": "back.jpg", //Back image name or URL for cubic panorama (only use with cubic panorama)
"left": "left.jpg", //Left image name or URL for cubic panorama (only use with cubic panorama)
"right": "right.jpg", //Right image name or URL for cubic panorama (only use with cubic panorama)
"up": "up.jpg", //Up image name or URL for cubic panorama (only use with cubic panorama)
"down": "down.jpg" //Down image name or URL for cubic panorama (only use with cubic panorama)
},
"camera": //Camera settings section <Optional>
{
"vlookat": 0, //Initial vertical position [-90, 90]
"hlookat": 0, //Initial horizontal position [-180, 180]
"atvmin": -90, //Min vertical position [-90, 90]
"atvmax": 90, //Max vertical position [-90, 90]
"athmin": -180, //Min horizontal position [-180, 180]
"athmax": 180 //Max horizontal position [-180, 180]
},
"hotspots": [ //Hotspots section (this section is an array of hotspots) <Optional>
{
"id": 1, //Hotspot identifier (long)
"atv": 0, //Vertical position [-90, 90]
"ath": 0, //Horizontal position [-180, 180]
"width": 0.08, //Width
"height": 0.08, //Height
"image": "hotspot.png" //Image name or URL
}
]
}

3.3看到

PLJSONLoader类和PLView加载方法。
json_spherical.data、json_spherical2、json_cylindrical.data和json_cubic.data都位于
HelloPanoramaGL示例的“res/raw”文件夹中。

4更多信息

想获得更多信息,请签出HelloPanoramaGL示例,该示例运行在Android2.x或以上版本。

5效果图

 

最新文章

  1. 概率论与数理统计讲课PPT和往年期末试卷
  2. (转)对SQLSERVER数据库事务日志的疑问
  3. MongoDB修改器总结
  4. aop实现日志(转)
  5. 找模式串[XDU1032]
  6. mybatis+spring的简单介绍学习
  7. effective c++ 条款06 不想自动生成函数,就明确拒绝
  8. PS 滤镜算法原理——照亮边缘
  9. 将CSV文件写入MySQL
  10. spring BeanFactory VS FactoryBean
  11. .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  12. [luogu4265][USACO18FEB]Snow Boots silver
  13. Spring Boot 2.0 整合 FreeMarker 模板引擎
  14. openstack horizon 开发第二天
  15. websocke前世今生
  16. VMware跨电脑移动Linux虚拟机
  17. 汉字转换为拼音的JavaScript库
  18. BZOJ 4817: [Sdoi2017]树点涂色(LCT+树剖+线段树)
  19. win10命令行压缩zip文件
  20. 【java】Cookie购物车实现

热门文章

  1. table中的边框合并实例
  2. 触摸屏touchstart 与 click
  3. mac github工具将命令当下来的代码拖入macgithub中就可以
  4. 无废话WCF入门教程四[WCF的配置文件]
  5. 基于Jquery的多彩二维码的生成
  6. linux_ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
  7. Lucene.Net简介和分词
  8. 设置CentOS开机连接网络 Centos 开机启动网卡的设置方法
  9. POJ 3928 &amp;amp; HDU 2492 Ping pong(树阵评价倒数)
  10. MVC5 + EF6 + Bootstrap3-10