Java tutorial
/* * ARSimple.java * ARToolKit5 * * Disclaimer: IMPORTANT: This Daqri software is supplied to you by Daqri * LLC ("Daqri") in consideration of your agreement to the following * terms, and your use, installation, modification or redistribution of * this Daqri software constitutes acceptance of these terms. If you do * not agree with these terms, please do not use, install, modify or * redistribute this Daqri software. * * In consideration of your agreement to abide by the following terms, and * subject to these terms, Daqri grants you a personal, non-exclusive * license, under Daqri's copyrights in this original Daqri software (the * "Daqri Software"), to use, reproduce, modify and redistribute the Daqri * Software, with or without modifications, in source and/or binary forms; * provided that if you redistribute the Daqri Software in its entirety and * without modifications, you must retain this notice and the following * text and disclaimers in all such redistributions of the Daqri Software. * Neither the name, trademarks, service marks or logos of Daqri LLC may * be used to endorse or promote products derived from the Daqri Software * without specific prior written permission from Daqri. Except as * expressly stated in this notice, no other rights or licenses, express or * implied, are granted by Daqri herein, including but not limited to any * patent rights that may be infringed by your derivative works or by other * works in which the Daqri Software may be incorporated. * * The Daqri Software is provided by Daqri on an "AS IS" basis. DAQRI * MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION * THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE, REGARDING THE DAQRI SOFTWARE OR ITS USE AND * OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. * * IN NO EVENT SHALL DAQRI BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, * MODIFICATION AND/OR DISTRIBUTION OF THE DAQRI SOFTWARE, HOWEVER CAUSED * AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), * STRICT LIABILITY OR OTHERWISE, EVEN IF DAQRI HAS BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Copyright 2015 Daqri, LLC. * Copyright 2011-2015 ARToolworks, Inc. * * Author(s): Julian Looser, Philip Lamb * */ package fr.norips.ar.ARMuseum; import android.Manifest; import android.app.ProgressDialog; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; import android.util.Log; import android.widget.FrameLayout; import android.widget.Toast; import org.artoolkit.ar.base.ARActivity; import org.artoolkit.ar.base.camera.CaptureCameraPreview; import org.artoolkit.ar.base.rendering.ARRenderer; import fr.norips.ar.ARMuseum.R; import fr.norips.ar.ARMuseum.Config.ConfigHolder; import fr.norips.ar.ARMuseum.Config.JSONParser; /** * A very simple example of extending ARActivity to create a new AR application. */ public class ARMuseumActivity extends ARActivity { private ProgressDialog pDialog; public static boolean dismisspDialog = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Calls ARActivity's ctor, abstract class of ARBaseLib setContentView(R.layout.main); FrameLayout f = (FrameLayout) findViewById(R.id.mainLayout); f.setOnTouchListener(new OnSwipeTouchListener(ARMuseumActivity.this) { public void onSwipeTop() { } public void onSwipeRight() { ConfigHolder.getInstance().nextPage(); } public void onSwipeLeft() { ConfigHolder.getInstance().previousPage(); } public void onSwipeBottom() { } }); } @Override public void onResume() { super.onResume(); dismisspDialog = false; pDialog = new ProgressDialog(ARMuseumActivity.this); pDialog.setMessage(getResources().getString(R.string.loading_text)); pDialog.setTitle(getResources().getString(R.string.loading_title)); pDialog.setIndeterminate(true); pDialog.show(); } @Override synchronized public void onFrameProcessed() { if (pDialog != null && dismisspDialog) { pDialog.dismiss(); pDialog = null; } } /** * Provide our own SimpleRenderer. */ @Override protected ARRenderer supplyRenderer() { return new SimpleRenderer(this.getBaseContext()); } /** * Use the FrameLayout in this Activity's UI. */ @Override protected FrameLayout supplyFrameLayout() { return (FrameLayout) this.findViewById(R.id.mainLayout); } }