안드로이드 VR로 이미지 보기
최근에 할 일이 없어서 차제를 알아보고 VR 전경 사진으로 차를 보는 기능을 발견했기 때문에 자료를 찾아보고 자신도 하나 썼다.
방법1: 구글이 제공하는 vr 라이브러리를 이용하여
1. vr 라이브러리에 의존
implementation 'com.google.vr:sdk-panowidget:1.80.0'
2. 레이아웃 파일
3. 컨트롤 찾기, 이미지 설정, 이미지는 미용사가 제공
public class VrLocationActivity extends AppCompatActivity {
int type = -1;
Bitmap mBitmap;
VrPanoramaView panoWidgetView;
VrPanoramaView.Options paNormalOptions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vr_location);
type = getIntent().getIntExtra("type", 0);
panoWidgetView = findViewById(R.id.vr_view);
panoWidgetView.setEventListener(new ActivityEventListener());
paNormalOptions = new VrPanoramaView.Options();
// mVrPanoramaView.setFullscreenButtonEnabled (false); //
panoWidgetView.setInfoButtonEnabled(false); //
panoWidgetView.setStereoModeButtonEnabled(false); //
panoWidgetView.setEventListener(new ActivityEventListener()); //
if (type == 1) {
/**
。 、 。 360 ,
*/
paNormalOptions.inputType = VrPanoramaView.Options.TYPE_STEREO_OVER_UNDER;
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.andes);
}
else if (type == 2) {
paNormalOptions.inputType = VrPanoramaView.Options.TYPE_MONO;
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.andes1);
}
else if (type == 3) {
/**
* 360 , 。 , 1000x250 , 360x90 -45 +45
*/
paNormalOptions.inputType = VrPanoramaView.Options.TYPE_MONO;
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.andes2);
}
panoWidgetView.loadImageFromBitmap(mBitmap, paNormalOptions);
}
private class ActivityEventListener extends VrPanoramaEventListener {
/**
* Called by pano widget on the UI thread when it's done loading the image.
*/
@Override
public void onLoadSuccess() {
Log.e("dongjie", " ");
}
/**
* Called by pano widget on the UI thread on any asynchronous error.
*/
@Override
public void onLoadError(String errorMessage) {
Log.d("dongjie", " : " + errorMessage);
}
@Override
public void onDisplayModeChanged(int newDisplayMode) {
// ( )
super.onDisplayModeChanged(newDisplayMode);
Log.i("dongjie", "onDisplayModeChanged------------>" + newDisplayMode);
}
@Override
public void onClick() {
super.onClick();
// VrPanoramaView
Log.i("dongjie", "onClick------------>");
}
}
@Override
protected void onPause() {
panoWidgetView.pauseRendering();
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
panoWidgetView.resumeRendering();
}
@Override
protected void onDestroy() {
// Destroy the widget and free memory.
panoWidgetView.shutdown();
super.onDestroy();
}
}
2. Three.js WebView 혼합 개발
1.x5코어를 집적,여기에는 x5코어를 사용하는 것을 권장합니다.로드 효율이 훨씬 빠를 것입니다.집적과정은 여기서 생략합니다
2. xml 파일
3. Three를 다운로드한다.js
다운로드 주소:https://threejs.org/
4. HTML 코드 작성: 이 단계가 어려우면 웹 전단에 맡길 수 있다
Photo Sphere Viewer
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)'
},
});
5.Activity 코드를 작성하고 웹뷰로 위의 html 코드를 불러옵니다. 일반적으로 웹 전단에 링크를 제공합니다.
public class WebViewActivity extends AppCompatActivity {
private WebView webview;
private String url = "file:///android_asset/vr.html";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
webview = (WebView) findViewById(R.id.web_view);
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;
}
});
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.