ARmskShared.java :  » Port » armsk » com » opencv » Android Open Source

Android Open Source » Port » armsk 
armsk » com » opencv » ARmskShared.java
package com.opencv;

import java.util.LinkedList;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.LinearLayout;

import com.opencv.camera.NativePreviewer;
import com.opencv.camera.NativeProcessor;
import com.opencv.camera.NativeProcessor.PoolCallback;
import com.opencv.opengl.GL2CameraViewer;

public class ARmskShared extends Activity {
  private NativePreviewer mPreview;

  private GL2CameraViewer glview;

  /*
   * (non-Javadoc)
   * 
   * @see android.app.Activity#onKeyUp(int, android.view.KeyEvent)
   */
  @Override
  public boolean onKeyUp(int keyCode, KeyEvent event) {

    return super.onKeyUp(keyCode, event);
  }

  /*
   * (non-Javadoc)
   * 
   * @see android.app.Activity#onKeyLongPress(int, android.view.KeyEvent)
   */
  @Override
  public boolean onKeyLongPress(int keyCode, KeyEvent event) {

    return super.onKeyLongPress(keyCode, event);
  }

  /**
   * Avoid that the screen get's turned off by the system.
   */
  public void disableScreenTurnOff() {
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
        WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  }

  /**
   * Set's the orientation to landscape, as this is needed by AndAR.
   */
  public void setOrientation() {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  }

  /**
   * Maximize the application.
   */
  public void setFullscreen() {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
  }

  public void setNoTitle() {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // menu.add("Sample");
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    // if(item.getTitle().equals("Sample")){
    // //do stuff...
    // }

    return true;

  }

  @Override
  public void onOptionsMenuClosed(Menu menu) {
    // TODO Auto-generated method stub
    super.onOptionsMenuClosed(menu);
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setFullscreen();
    disableScreenTurnOff();

    FrameLayout frame = new FrameLayout(getApplication());

    // Create our Preview view and set it as the content of our activity.
    mPreview = new NativePreviewer(getApplication(), 400, 300);

    LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT);
    params.height = getWindowManager().getDefaultDisplay().getHeight();
    params.width = (int) (params.height * 4.0 / 2.88);

    LinearLayout vidlay = new LinearLayout(getApplication());

    vidlay.setGravity(Gravity.CENTER);
    vidlay.addView(mPreview, params);
    frame.addView(vidlay);
    
    // make the glview overlay ontop of video preview
    mPreview.setZOrderMediaOverlay(false);
    
    glview = new GL2CameraViewer(getApplication(), false, 0, 0);
    glview.setZOrderMediaOverlay(true);
    glview.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
        LayoutParams.FILL_PARENT));
    frame.addView(glview);

    setContentView(frame);
  }

  @Override
  protected void onPause() {
    super.onPause();
    
    mPreview.onPause();
    
    glview.onPause();
    

  }

  @Override
  protected void onResume() {
    super.onResume();
    glview.onResume();
    LinkedList<NativeProcessor.PoolCallback> callbackstack = new LinkedList<PoolCallback>();
    callbackstack.add(glview.getDrawCallback());
    mPreview.addCallbackStack(callbackstack);
    mPreview.onResume();

  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.