Esempio n. 1
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_face_tracking);
    setupActionBar();

    final View controlsView = findViewById(R.id.fullscreen_content_controls);
    final SurfaceView surfaceView = (SurfaceView) findViewById(R.id.viewfinder);

    SurfaceHolder holder = surfaceView.getHolder();
    holder.addCallback(
        new SurfaceHolder.Callback() {
          @Override
          public void surfaceCreated(SurfaceHolder holder) {
            try {
              camera.setPreviewDisplay(holder);
              camera.startPreview();
              camera.setFaceDetectionListener(new MyFaceDetectionListener(surfaceView));
              startFaceDetection();
            } catch (IOException e) {
              e.printStackTrace();
            }
          }

          @Override
          public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
            camera.stopPreview();
            camera.setDisplayOrientation((int) displayRotation);
            try {
              camera.startPreview();
              camera.setPreviewDisplay(holder);
            } catch (IOException e) {
              e.printStackTrace();
            }
          }

          @Override
          public void surfaceDestroyed(SurfaceHolder holder) {}
        });

    // Set up an instance of SystemUiHider to control the system UI for
    // this activity.
    mSystemUiHider = SystemUiHider.getInstance(this, surfaceView, HIDER_FLAGS);
    mSystemUiHider.setup();
    mSystemUiHider.setOnVisibilityChangeListener(
        new SystemUiHider.OnVisibilityChangeListener() {
          // Cached values.
          int mControlsHeight;
          int mShortAnimTime;

          @Override
          @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
          public void onVisibilityChange(boolean visible) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
              // If the ViewPropertyAnimator API is available
              // (Honeycomb MR2 and later), use it to animate the
              // in-layout UI controls at the bottom of the
              // screen.
              if (mControlsHeight == 0) {
                mControlsHeight = controlsView.getHeight();
              }
              if (mShortAnimTime == 0) {
                mShortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
              }
              controlsView
                  .animate()
                  .translationY(visible ? 0 : mControlsHeight)
                  .setDuration(mShortAnimTime);
            } else {
              // If the ViewPropertyAnimator APIs aren't
              // available, simply show or hide the in-layout UI
              // controls.
              controlsView.setVisibility(visible ? View.VISIBLE : View.GONE);
            }

            if (visible && AUTO_HIDE) {
              // Schedule a hide().
              delayedHide(AUTO_HIDE_DELAY_MILLIS);
            }
          }
        });

    // Set up the user interaction to manually show or hide the system UI.
    surfaceView.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            if (TOGGLE_ON_CLICK) {
              mSystemUiHider.toggle();
            } else {
              mSystemUiHider.show();
            }
          }
        });

    // Upon interacting with UI controls, delay any scheduled hide()
    // operations to prevent the jarring behavior of controls going away
    // while interacting with the UI.
    findViewById(R.id.change_camera_button).setOnTouchListener(mDelayHideTouchListener);

    transparentView = (SurfaceView) findViewById(R.id.transparent_surface);

    holderTransparent = transparentView.getHolder();
    holderTransparent.setFormat(PixelFormat.TRANSPARENT);
  }
Esempio n. 2
0
 @Override
 public void run() {
   mSystemUiHider.hide();
 }