轻音乐,我强烈推荐以下几首,百听不厌

1.《风居住的街道》

1.OpenGL ES

图片 1

兑现后的功效紫禁城全景

2.谷歌 V福睿斯(全景图模块)

图片 2

第二种Google VR

3.Three.js(利用前端姿势)WebView混合开发

图片 3

Three.js(利用前端姿势)WebView混合开发

每一日夜间,从体育场馆回宿舍,总喜欢安静地听着音乐,一个人越过林科大桥,渐渐的走回宿舍,在音乐的伴随下,洗去一天的乏力。“独乐乐不如众乐乐”,因此小编将自己认为非凡满足的音乐推荐给您们,也期望你们能够喜欢。

Step 2.Add the dependency

在 build.gradle 文件中添加库依赖:

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

build.gradle 完整代码:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.zph.three360panorama"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    allprojects {
        repositories {
            maven { url 'https://jitpack.io' }
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:design:26.+'
    compile 'com.github.CN-ZPH:weibo360panorama:v1.0.1'
    compile 'com.google.vr:sdk-panowidget:1.80.0'
    testCompile 'junit:junit:4.12'
    compile files('libs/tbs_sdk_thirdapp_v3.3.0.1045_43300.jar')
}

花去的那多少个日子,只是在持续垒起那么些多米诺骨,在结尾一击下翻乱如潮,连绵不绝。

Step 4.Activity中先导化组件

//初始化VR图片
    private void initVrPaNormalView() {
        mVrPanoramaView = (VrPanoramaView) findViewById(R.id.mVrPanoramaView);
        paNormalOptions = new VrPanoramaView.Options();
        paNormalOptions.inputType = VrPanoramaView.Options.TYPE_STEREO_OVER_UNDER;
//      mVrPanoramaView.setFullscreenButtonEnabled (false); //隐藏全屏模式按钮
        mVrPanoramaView.setInfoButtonEnabled(false); //设置隐藏最左边信息的按钮
        mVrPanoramaView.setStereoModeButtonEnabled(false); //设置隐藏立体模型的按钮
        mVrPanoramaView.setEventListener(new ActivityEventListener()); //设置监听
        //加载本地的图片源
        mVrPanoramaView.loadImageFromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.andes), paNormalOptions);
        //设置网络图片源
//        panoWidgetView.loadImageFromByteArray();
    }

    private class ActivityEventListener extends VrPanoramaEventListener {
        @Override
        public void onLoadSuccess() {//图片加载成功
        }


        @Override
        public void onLoadError(String errorMessage) {//图片加载失败
        }

        @Override
        public void onClick() {//当我们点击了VrPanoramaView 时候触发            super.onClick();
        }

        @Override
        public void onDisplayModeChanged(int newDisplayMode) {
            super.onDisplayModeChanged(newDisplayMode);
        }
    }

图表来源于网络

Step 3.AndroidManifest中添加权限

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

此潮又为心潮,鼓动不止,有怎么样,不断敲击着脆弱的心,过去发表后,如此不只怕冷静,

Step 1

在build.gradle 文件中添加库依赖:

allprojects {
        repositories {

            maven { url 'https://jitpack.io' }
        }
    }

6.《潮鸣》

简介

就只是某个非常的小心愿,想要见一面而已,要被世界如此对待。就是那一份微小但是具体的怀想,却难以通晓转达。跨越风雪,等着温馨的是按部就班不见不散的不行人。

一.使用

**

  1. 《想い出は远くの日々》**

第二种 Google VR


其次种也等于谷歌(Google)官方为运动平台下V大切诺基消除方案,有趣味的可以点开上边链接玩玩,大家只使用其中全景图模块。

Google
VR主页:https://developers.google.com/vr/
Google VR for Android
github地址:https://github.com/googlevr/gvr-android-sdk

《风居住的街道》是二零零四年矶村由纪子与东瀛老牌二胡演奏家坂下正夫同盟的经典曲目,二胡与钢琴的反衬对话,令人气象一新,全体上来说,二胡的百分比当先钢琴,大概说是感染力当先了钢琴,二胡的忧愁在那里胜过了钢琴的妖艳,钢琴和二胡混合在同步,互相倾诉,互相尊崇,但永远不会重合,就像三个永远都不大概在联名的情人。

2.采用传感器让球随开头机转动而转动

第二想开的就是引力影响传感器,可是只可以获取大家向13分地方偏移的主旋律,显然不可以满足大家旋转的必要,使用陀螺仪传感器。
陀螺仪就是里面有3个陀螺,它的轴由于陀螺效应始终与初叶方向平行,这样就可以通过与开始方向的谬误统计出实际方向。
陀螺仪对配备旋转角度的检测是一念之差的同时是十三分精确的。

《绿野仙踪》出自专辑《乱红(箫与钢琴)》,专辑歌唱家是陈悦和
马克,那首乐曲融合了箫声与钢琴声,是神州古典乐与西洋乐的完善组合,旋律简洁漂亮,却又极度见功力。

总结

三种方法都落到实处完了,不用担心今日具备代码都会放在GitHub上。
三种办法实际你拔取哪类自身要么尚未推荐的
此间只是一张图,你可以多张图已毕来成功简单的全景街景效果!点击图片有个别区域,跳转到下1个街景的图,包蕴百度地图里面也是一张张全景图拼接而成。

  • 第二种俺会在接二连三继续完善投入更多的可选参数,你们有趣味也足以友善优化。
  • 第一种是谷歌(Google)V奥迪Q7模块的没什么好说的,终归官方俩字就够了。
  • 其三种跨平台最好的,毕竟是个网页。而我们第1种拔取了腾讯X5内核来玩,可是还足以在优化,消耗不小,作者提议你独自给WebView分配三个历程和你的事体分别。
  • 拿着自个儿的保温杯,泡一杯枸杞,大家下篇文章再会

图形源于互连网

Step 2.AndroidManifest.xml里投入权限表明

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

仔细的笛声在银珠落盘般的钢琴音符里起落,拿到了差距寻常的精力和极具时髦感的表现力。箫笛的音韵传达着木管特有的思念与了悟,而钢琴即使多是在低音区零落地弹奏,却仍不失“乐器之王”的放宽胸怀,正是东方智慧与天堂智性的周详融合。

Step 7.Activity调用HTML

非常粗大略就是把系统的WebView换来Tencent_Webview其余类似

public class WebViewActivity extends AppCompatActivity {

    private com.tencent.smtt.sdk.WebView tencent_webview;
    private String url = "file:///android_asset/admin.html";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        initView();

    }
    @SuppressLint("SetJavaScriptEnabled")
    private void initView() {
        tencent_webview = (WebView) findViewById(R.id.web);
        tencent_webview.loadUrl(url);
        WebSettings webSettings = tencent_webview.getSettings();
        webSettings.setJavaScriptEnabled(true);
        tencent_webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return true;
            }
        });
    }

}

最终附上插件的可布置参数:

panorama:必填参数,全景图的路径。
container:必填参数,放置全景图的div元素。
autoload:可选,默认值为true,true为自动调用全景图,false为在后面加载全景图(通过.load()方法)。
usexmpdata:可选,默认值为true,如果Photo Sphere Viewer必须读入XMP数据则为true。
default_position:可选,默认值为{},定义默认的位置,及用户看见的第一个点,例如:{long: Math.PI, lat: Math.PI/2}。
min_fov:可选,默认值为30,观察的最小区域,单位degrees,在1-179之间。
max_fov:可选,默认值为90,观察的最大区域,单位degrees,在1-179之间。
allow_user_interactions:可选,默认值为true,设置为false则禁止用户和全景图交互(导航条不可用)。
tilt_up_max:可选,默认值为Math.PI/2,向上倾斜的最大角度,单位radians。
tilt_down_max:可选,默认值为Math.PI/2,向下倾斜的最大角度,单位radians。
zoom_level:可选,默认值为0,默认的缩放级别,值在0-100之间。
long_offset:可选,默认值为PI/360,mouse/touch移动时每像素经过的经度值。
lat_offset:可选,默认值为PI/180,mouse/touch移动时每像素经过的纬度值。
time_anim:可选,默认值为2000,全景图在time_anim毫秒后会自动进行动画。(设置为false禁用它)
theta_offset:过时的选项,可选,默认值为1440,自动动画时水平方向的速度。
anim_speed:可选,默认值为2rpm,动画的速度,每秒/分钟多少radians/degrees/revolutions。
navbar:可选值,默认为false。显示导航条。
navbar_style:可选值,默认为{}。导航条的自定义样式。下面是可用的样式列表:
backgroundColor:导航条的背景颜色,默认值为rgba(61, 61, 61, 0.5)。
buttonsColor:按钮的前景颜色,默认值为transparent。
activeButtonsBackgroundColor:按钮激活状态的背景颜色,默认值为rgba(255, 255, 255, 0.1)。
buttonsHeight:按钮的高度,单位像素,默认值为20。
autorotateThickness:autorotate图标的厚度,单位像素,默认值为1。
zoomRangeWidth:缩放的范围,单位显示,默认值50。
zoomRangeThickness:缩放的范围的厚度,单位像素,默认值1。
zoomRangeDisk:缩放范围的圆盘直径,单位像素,默认值为7。
fullscreenRatio:全屏图标的比例,默认值为3/4。
fullscreenThickness:全屏图标的厚度,单位像素,默认值为2。
loading_msg:可选,默认值为Loading…,图片加载时的提示文字。
loading_img:可选,默认值为null,在加载时显示的图片的路径。
size:可选,默认值null,全景图容器的最终尺寸。例如:{width: 500, height: 300}。
onready:可选值,默认值为null。当全景图准备就绪并且第一张图片显示时的回调函数。

图形来自网络

从那之后第二种OpenGL ES格局为主代码分析完结,有不清楚的地点可以找笔者

《乱红》的演奏者陈悦,出生于新疆省宁波市,毕业于中国音乐大学,是中华盛名青年笛箫演奏家。记得首先次听《乱红》时,是在高等高校的民族音乐鉴赏的课堂上,真的被它精彩的节奏以及散发的淡漠痛心所感染。

Step 3.开立布局文件.XML

<com.zph.glpanorama.GLPanorama
    android:id="@+id/mGLPanorama"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></com.zph.glpanorama.GLPanorama>

听着那首潮声,似乎看见翻腾的海浪,中午微暗的熨帖,转为苍蓝,又变银色,潮水毫不停歇地撞击着海岸,发出清脆的闹腾鸣响。

1.制图球体:

引用tim_shadow大佬的有关全景图一篇文章介绍
在OpenGL
ES中几近全体的立体图像都以通过一个个的小三角形拼接而成大家驾驭球面上边的每三个点(P(x,y,z))都会满意方程组(球的极坐标方程):
x = r * sin(a) cos(b)
y = r \
cos(a)
z = r * sin(a)*sin(b)
里面 r为球的半径,a为线段 OP与 z轴正方向所夹角,b为 OP在xoy平面的影子
OP‘ 与x的正方向所夹角

图片 4

tim_shadow大佬的示意图

咱俩得以依据这么些方程组,通过操纵∠a和∠b的转移,从上到下,逆时针的取得大家要求用来整合称三角形的点,然后大家必要将全景图片上的点与大家在球上面采取的点一一对应起来(注意:球的坐标是3维坐标,图片的坐标是2维坐标)
球上面的点与图片上边的点一一对应起来。

纹理和图表绑定绘制到显示器上

 int[] textures = new int[1];
        glGenTextures(1, textures, 0);
        int textureId = textures[0];
        glBindTexture(GL_TEXTURE_2D, textureId);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

        InputStream is = context.getResources().openRawResource(drawableId);
        Bitmap bitmapTmp;
        try {
            bitmapTmp = BitmapFactory.decodeStream(is);
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        GLUtils.texImage2D(GL_TEXTURE_2D, 0, bitmapTmp, 0);
        bitmapTmp.recycle();

4.《天空之城》

一.使用

有个别小伙伴懒得看规律,间接就想拿来用所以小编先说集成格局吗!

《乱红》以中国山水画般的清悠淡远演绎着现代人的心境、梦想和愿意。专辑中,陈悦细腻而感性的推理是价值观的、古典的,更是现代的、前卫的,将现代东方女性的蕴藏之美、娴静之美、高雅之美,浮现给世界。专辑封面上的陈悦淡定凝重,一管竹箫在握,正令人想起“玉人何处教吹箫”的意味。专辑的每首乐曲都流溢着女性特有的灵巧与温柔,令人惊叹的才情则将价值观的东方乐器演绎得各具特色,让观者万象更新。

3.装置填充球的Y,X的角度

老是得到角度数据后只要求y,x的值总计位移的值

因为全景图上下旋转会扭曲整个图所以作者这里设置了上下只可以偏移50f,倘诺不限量你可以去掉

mBall.yAngle += dx*
2.0f;这里*2.0约等于陀螺仪传过来的值乘以得出偏移的角度,数值越大,每一遍偏移更快!

   Sensordt info = (Sensordt) msg.obj;
                    float y = info.getSensorY();
                    float x = info.getSensorX();
                    float dy = y - mPreviousY;// 计算触控笔Y位移
                    float dx = x - mPreviousX;// 计算触控笔X位移
                    mBall.yAngle += dx * 2.0f;// 设置填充椭圆绕y轴旋转的角度
                    mBall.xAngle += dy * 0.5f;// 设置填充椭圆绕x轴旋转的角度
                    if (mBall.xAngle < -50f) {
                        mBall.xAngle = -50f;
                    } else if (mBall.xAngle > 50f) {
                        mBall.xAngle = 50f;
                    }
                    mPreviousY = y;
                    mPreviousX = x;

图片源于互连网

1.注册陀螺仪传感器

率先注册陀螺仪传感器按照具体必要协调设置灵敏度,当然越灵敏,越功耗。

  • 注册陀螺仪传感器,并设定传感器向利用中输出的时刻距离类型是SensorManager.SENSOCR-V_DELAY_GAME(20000微秒)
  • SensorManager.SENSOR_DELAY_FASTEST(0微秒):最快。最低延迟,一般不是特地敏感的拍卖不推荐使用,该格局可能在成手机电力多量消耗,由于传递的为本来数据,算法不处理好会潜移默化游戏逻辑和UI的习性
  • SensorManager.SENSOR_DELAY_GAME(20000飞秒):游戏。游戏延迟,一般绝大部分的实时性较高的游玩都以用该级别
  • SensorManager.SENSOR_DELAY_NO景逸SUVMAL(两千00阿秒):普通。标准延时,对于一般的益智类或EASY级其他玩乐可以接纳,但过低的采样率或者对一部分赛车类游戏有跳帧现象
  • SensorManager.SENSOR_DELAY_UI(六千0阿秒):用户界面。一般对于屏幕方向自动旋转使用,相对节约电能和逻辑处理,一般娱乐支付中不行使

自己那边为了测试设置了SENSO昂科雷_DELAY_FASTEST,实际采纳提议用SENSO汉兰达_DELAY_GAME

    private void initSensor() {
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        gyroscopeSensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
        sensorManager.registerListener(this, gyroscopeSensor,
                SensorManager.SENSOR_DELAY_FASTEST);
    }

那首轻音乐是新海诚《秒速5分米》里面的一首轻音乐。

二.分析

首先我们须要明白全景图是如姚锐西,全景图是一种广角图。通过全景播放器可以让旁观者身入其境地进去到全景图所记录的景观中去,寻常标准的全景图是一张2:1的图像,其幕后的本来面目就是等距圆柱投影。等距圆柱投影是一种将球体上的逐一点投影到圆柱体的侧面上的一种影子格局,投影完将来再将它举办就是一张2:1的正方形的图像。相比较常见的就是使用在地图上的黑影。

图片 5

引用慕课的一张介绍图

赢得全景图后那大家就要求展示了,看到旁边地球了呢?

怎么显得呢一言以蔽之就是把全景图片整个贴到3个圆球上。
好了知道原理那咱们就该考虑在android上怎么落到实处了,在android中绘制3d图形可以运用OpenGL
(就不说OpenGL 基础了想看的友好百度一大堆资料)。

其核心曲《伴随着您》(通称:天空之城)由美学家久石让作曲,因以其令人落泪的美观曲调和动人的出色音律而名噪一时半刻海内外,久石让创作的《天空之城》是在描写一个追梦的长河,映射大家的人生追逐梦想,要经历灾殃,要坚贞不屈,要实在冷静。差其他乐器依照其音色在每段音乐中表述了差别的心思,叙述了人在差距阶段的情愫经历。

Step 6.编写HTML文件

在 assets 目录下成立三个html文件展现全景图
引入Threejs
panorama:’https://gw.alicdn.com/tfs/TB1WSInRFXXXXXlXpXXXXXXXXXX-1200-600.jpg’,
那行就是您的全景图地址

您可以采纳js交互将你的地点传到HTML上

直白上代码了:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Photo Sphere Viewer</title>
        <meta name="viewport" content="initial-scale=1.0" />
        <script src="js/three.min.js"></script>
        <script src="js/photo-sphere-viewer.min.js"></script>
        <style>
            html, body {
                margin: 0;
                width: 100%;
                height: 100%;
                overflow: hidden;
            }
            #container {
                width: 100%;
                height: 100%;
            }
        </style>
    </head>

    <body>
        <div id="container"></div>
        <script>
            var div = document.getElementById('container');
            var PSV = new PhotoSphereViewer({
                    panorama: 'https://gw.alicdn.com/tfs/TB1WSInRFXXXXXlXpXXXXXXXXXX-1200-600.jpg',
                    container: div,
                    time_anim: false,
                    navbar: true,
                    navbar_style: {
                        backgroundColor: 'rgba(58, 67, 77, 0.7)'
                    },
                });
        </script>
    </body>
</html>

2.《乱红》

OK未来您可以测试玩玩了(别用模拟器玩咔咔报错就来找小编)。

《风居住的马路》是自身至极喜爱的一首轻音乐,以至于本身不少争辩软件都用它看成昵称。它还改变了自作者对二胡的意见,第叁次让自家以为二胡可以如此的悠扬。从前二胡的认识仅停留在街道上的六柱预测先生多只拉着难听二胡一边给旁人六柱预测,所以这时觉得二胡很难听。

Step 5.下载Three.js

下载地址:https://threejs.org/
要么去GitHub从本身的花色中找后天代码都会放到GitHub上

   <script src="js/three.min.js"></script>
   <script src="js/photo-sphere-viewer.min.js"></script>

整部影片讲述的是东道主少女希达和少年巴鲁以及海盗、军队、穆斯卡等搜索天空之城拉普达的历险记。

一.使用

图片来源于网络

世家好自个儿是张鹏辉(道长)人如其名,小编是天桥上占卜的,转载那条博文,接下去3个月会有不测的惊喜发生。
多年来今日头条上的全景图火了,所以决定完成一下。
工程里面图片财富来源互连网,如有侵权请联系自身,立即删除
本来已毕的方法很多诸如OpenCV、u3d等。
此间提供两种艺术完结:

图表源于互联网

3.进入手势操控,拖动图片转动

插足手势那里没什么好说的了,就是重写onTouch伊芙nt()方法。
此处唯一要注意的就是,当手指引击显示器的时候要关门陀螺仪传感器的监听不然会挑起冲突。当手指离开显示器,重新监听陀螺仪传感器。
和方面也一律只是那里换来获取手指偏移角度,而不是传感器的数值,直接看代码。

  public boolean onTouchEvent(MotionEvent e) {
        sensorManager.unregisterListener(this);
        float y = e.getY();
        float x = e.getX();
        switch (e.getAction()) {
            case MotionEvent.ACTION_MOVE:
                float dy = y - mPreviousYs;// 计算触控笔Y位移
                float dx = x - mPreviousXs;// 计算触控笔X位移

                mBall.yAngle += dx * 0.3f;// 设置填充椭圆绕y轴旋转的角度
                mBall.xAngle += dy * 0.3f;// 设置填充椭圆绕x轴旋转的角度
                if (mBall.xAngle < -50f) {
                    mBall.xAngle = -50f;
                } else if (mBall.xAngle > 50f) {
                    mBall.xAngle = 50f;
                }
                Log.i("zphsas", "mHandler ***  mPreviousY" + mBall.yAngle);
                Log.i("zphsas", "mHandler ***  mPreviousx" + mBall.xAngle);

                rotate();
                break;
            case MotionEvent.ACTION_UP:
                sensorManager.registerListener(this, gyroscopeSensor,
                        SensorManager.SENSOR_DELAY_FASTEST);
                break;
        }
        mPreviousYs = y;// 记录触控笔位置
        mPreviousXs = x;// 记录触控笔位置
        return true;
    }

整首曲子,动与静,温婉与低落,交相错出,似乎多少个对象,相互爱戴,相互思念,却是七个江南,二个塞北。山水万重,烟雨千声,只好隔着时光的征尘,遥遥地相望。几许情深,几许痛楚,不驰念,自难忘。

第一种 OpenGL ES


首先种办法利用OpenGL来促成(上面gif图截取因为博客限制上传图片的轻重,小编压缩了,看起来有点卡其实很通畅的)
能够看看帮助旋转手机查看、恐怕拖动图片查看、可以观察左边中心部分有个提醒器会趁着角度变化而生成并且点击可以复苏初始地点。

和任何品种的音乐比较,作者更欣赏听轻音乐,没有歌词,唯有缓缓的旋律流淌,令人沉浸在格外的美的享受中。它的空灵令人爆发一种舒适感。

Step 4..创设布局文件.XML

 <com.tencent.smtt.sdk.WebView
        android:id="@+id/web"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></com.tencent.smtt.sdk.WebView>

《天空之城》是东瀛吉卜力工作室打造的动画电影,宫崎骏担任原作、监督、脚本设计、角色设定及发行人,田中真弓、横泽启子、初井言荣、寺田农等人配音。

Step 1.添加x5 SDK

到x5官网下载最新的sdk得到3个jar包
自作者在那的是3.3.0本子的。
将下载好的jar包放到你的工程libs目录下
在 build.gradle 文件中添加库依赖:

    dependencies {
        compile files('libs/tbs_sdk_thirdapp_v3.3.0.1045_43300_sharewithdownload_withoutGame_obfs_20170605_170212.jar')

    }

3.《绿野仙踪》

Step 4.扩散你的全景图

*R.drawable.imggugong 那张全景图传到控件里面

public class MainActivity extends AppCompatActivity {
    private GLPanorama mGLPanorama;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化全景控件
        mGLPanorama= (GLPanorama) findViewById(R.id.mGLPanorama);
        //传入你的全景图
        mGLPanorama.setGLPanorama(R.drawable.imggugong);
    }
}

她们都太过坚强,用笑容掩盖了全套痛楚,所以到终极才会如此悲痛而土崩瓦解,

品类源码下载地址:

https://github.com/CN-ZPH/
认为不错请点多个star蛤!
有标题上边留言评论,作者看出会上升。

以上对歌曲内容具体的介绍,来源百度。

先看下三种落成的听从:

只是,作者个人觉得《天空之城》吟唱版更有觉得。

Step 2.创制布局文件.XML

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

《潮鸣り》是由东瀛作曲家折戸伸治创作的钢琴曲,并在扶桑游戏品牌Key社所批发的第五款恋爱冒险游戏《CLANNAD》。《潮鸣》是一首难过的曲子,配以《CLANNAD》感人的情节,每当冈崎朋也愁肠,或是故事情节到达伤感催泪处时,插曲播放烘托剧中感伤的空气,令人在视听它的同时不禁潸然泪下。

Step 3.APPAplication中X5内核开端化

public class APPAplication extends Application {

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。

        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

            @Override
            public void onViewInitFinished(boolean arg0) {
                // TODO Auto-generated method stub
                //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
            }

            @Override
            public void onCoreInitFinished() {
                // TODO Auto-generated method stub
            }
        };
        //x5内核初始化接口
        QbSdk.initX5Environment(getApplicationContext(),  cb);
    }

}

动画片以1个少年为轶闻轴心而进行一而再二个单长逝事的卡通短篇,时期背景是从壹玖捌玖时代至现代的扶桑,通过少年的人生显示东京以及任啥地点面的变更。

第2种到此地早已足以体现玩玩了,也没怎么可分析的,都是法定提供的sdk,会调用相关的方法就好了,具体都有这一个方法接口,最好的文档永远都是官方提供的,上边已经交付了链接,最好和谐把GitHub上的合法提供的demo砍下来跑一次,作者就不多介绍了。

图片来源于网络

其三种 Three.js(利用前端姿势)WebView混合开发


Three.js是JavaScript编写的WebGL第2方库。提供了要命多的3D突显效果。
Android下相信广大人都有点做过前端开发,将来无数应用程序都是依照前端H5/汉兰达N/小程序等来玩的。
理所当然大家全景图也得以停放前端来兑现,套个WebView利用JavaScript与Android交互来贯彻部分功能。

设想到在八种机型包容性,还有原生WebView的一对坑,小编那里运用腾讯的X5内核的WebView。

  1. OpenGL ES
  2. 谷歌Cardboard(谷歌(Google)V陆风X8)下面的1个集成模块,我们只使用其中浮现全景图部分模块
  3. Three.js(利用前端姿势)WebView混合开发
    二种姿势孰强孰弱,依据须求你们本身判断!作者会在最后给出一些提出,多说无益开撸

4.进入指示器

指示器那里弄了3个角标指示当前在全景图的角度,并且点击还原发轫角度。
可以想像同样是得到角度,大家一直放在全景图改变的地方,让指示器一起改变,而大家转移的地点唯有2个陀螺仪和拖动屏幕。
自个儿那边提示器放了一张图相当于1个 ImageView 控件

图片 6

指示器img

1.为指示器参与动画跟随全景图一起转

  private void rotate() {
        RotateAnimation anim = new RotateAnimation(predegrees, -mBall.yAngle,
                Animation.RELATIVE_TO_SELF, 0.5f,
                Animation.RELATIVE_TO_SELF, 0.5f);
        anim.setDuration(200);
        img.startAnimation(anim);
        predegrees = -mBall.yAngle;//记录这一次的起始角度作为下次旋转的初始角度
    }

2.点击指示器还原初叶地点

当点击还原的时候,作者一初始是直接过来起先地方只是太生硬了,通过获取当前旋转的角度,逆向旋转,渐渐恢复生机,让其有个对接的出力。
Y轴=旋转的角度-90f(开首角度)/10f(每一回偏移多少,经过自家屡屡品尝10f在本身的手机上刚刚好);
得到大家归总偏移一次可以复位;
X轴同理,因为自个儿下边限制了X轴的最大偏移,那里就不就是X轴了,然则在落成的同时一直复位X轴。(只是没有连通的功效),你可以加上。
自己设置的前奏角度是90f和0f,约等于X,Y轴的起首点
mHandlers.postDelayed(this, 16);
那行代码就是稍微飞秒复位贰遍。

看代码:

private void zero() {
        yy = (int) ((mBall.yAngle - 90f) / 10f);
        mHandlers.post(new Runnable() {
            @Override
            public void run() {
                if (yy != 0) {
                    if (yy > 0) {
                        mBall.yAngle = mBall.yAngle - 10f;
                        mHandlers.postDelayed(this, 16);
                        yy--;
                    }
                    if (yy < 0) {
                        mBall.yAngle = mBall.yAngle + 10f;
                        mHandlers.postDelayed(this, 16);
                        yy++;
                    }
                } else {
                    mBall.yAngle = 90f;
                }
                mBall.xAngle = 0f;
            }
        });
    }

2.收获传感器数据

当传感器的值发生变化时,例如磁阻传感器方向改变时会调用OnSensorChanged().
当传感器的精度发生变化时会调用OnAccuracyChanged()方法。

从 x、y、z
轴的正向地点来看处于原始方位的配备,倘诺设备逆时针转动,将会接收正值;否则,为负值
收获五次检测到手机旋转的时光差(毫秒),并将其转化为秒
将手机在逐个轴上的转动角度相加,即可拿到当前职责相对于起始地点的旋转弧度,将弧度转化为角度

   @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        if (sensorEvent.sensor.getType() == Sensor.TYPE_GYROSCOPE) {
            if (timestamp != 0) {
                final float dT = (sensorEvent.timestamp - timestamp) * NS2S;
                angle[0] += sensorEvent.values[0] * dT;
                angle[1] += sensorEvent.values[1] * dT;
                angle[2] += sensorEvent.values[2] * dT;
                float anglex = (float) Math.toDegrees(angle[0]);
                float angley = (float) Math.toDegrees(angle[1]);
                float anglez = (float) Math.toDegrees(angle[2]);
                Sensordt info = new Sensordt();
                info.setSensorX(angley);
                info.setSensorY(anglex);
                info.setSensorZ(anglez);
                Message msg = new Message();
                msg.what = 101;
                msg.obj = info;
                mHandler.sendMessage(msg);
            }
            timestamp = sensorEvent.timestamp;

        }
    }

Step 1.Add the dependency

眼前GitHub上流行版本号为1.8.0,作者那里也用风尚的了。
最低辅助到 minSdkVersion 19 也等于Android 4.4.0
在 build.gradle 文件中添加库依赖:

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图