Exemplo n.º 1
0
  // If the activity is paused and resumed, this method will be called in
  // onResume.
  private void initializeSecondTime() {
    // Start orientation listener as soon as possible because it takes
    // some time to get first orientation.
    mOrientationListener.enable();

    // Start location update if needed.
    installIntentFilter();
    keepMediaProviderInstance();
    checkStorage();
  }
Exemplo n.º 2
0
 @SuppressWarnings("deprecation")
 @Override
 protected void onResume() {
   super.onResume();
   SurfaceHolder surfaceHolder = mSurfaceView.getHolder();
   if (hasSurface) {
     initCamera(surfaceHolder);
   } else {
     surfaceHolder.addCallback(this);
     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
   }
   orientationEventListener.enable();
 }
Exemplo n.º 3
0
 @Override
 public void onResume() {
   super.onResume();
   if (camera != null) {
     try {
       camera.reconnect();
     } catch (IOException e) {
       e.printStackTrace();
     }
   }
   if (orientationListener == null) {
     initOrientationListener();
   }
   orientationListener.enable();
 }
Exemplo n.º 4
0
  // Snapshots can only be taken after this is called. It should be called
  // once only. We could have done these things in onCreate() but we want to
  // make preview screen appear as soon as possible.
  private void initializeFirstTime() {
    if (mFirstTimeInitialized) return;

    // Create orientation listenter. This should be done first because it
    // takes some time to get first orientation.
    mOrientationListener =
        new OrientationEventListener(this) {
          @Override
          public void onOrientationChanged(int orientation) {
            // We keep the last known orientation. So if the user
            // first orient the camera then point the camera to
            if (orientation == ORIENTATION_UNKNOWN) return;
            mLastOrientation = roundOrientation(orientation);
            int orientationCompensation = mLastOrientation + getDisplayRotation();
            if (mOrientationCompensation != orientationCompensation) {
              mOrientationCompensation = orientationCompensation;
              setOrientationIndicator(mOrientationCompensation);
            }
          }
        };
    mOrientationListener.enable();
    keepMediaProviderInstance();
    checkStorage();

    // Initialize last picture button.
    mContentResolver = getContentResolver();

    // Initialize shutter button.
    mShutterButton = (ShutterButton) findViewById(R.id.shutter_button);
    mShutterButton.setOnShutterButtonListener(this);
    mShutterButton.setVisibility(View.VISIBLE);
    mFocusRectangle = (FocusRectangle) findViewById(R.id.focus_rectangle);
    updateFocusIndicator();
    initializeScreenBrightness();
    installIntentFilter();
    mFirstTimeInitialized = true;
  }
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    // Log.d(TAG, "enter ContShooting#onCreate");
    super.onCreate(savedInstanceState);
    // requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);

    mOrientationListener =
        new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
          @Override
          public void onOrientationChanged(int orientation) {
            int degree = 0;
            if (orientation > 0 && orientation <= 45) {
              degree = 0;
            } else if (orientation > 45 && orientation <= 135) {
              degree = 90;
            } else if (orientation > 135 && orientation <= 225) {
              degree = 180;
            } else if (orientation > 225 && orientation <= 315) {
              degree = 270;
            } else {
              degree = 0;
            }
            if (mDegree != degree) {
              mDegree = degree;
              // 向きに応じてボタン等を回転させる
              rotate(degree);
            }
          }
        };
    mOrientationListener.enable();

    setTitle("");

    // mNum = getString(R.string.sc_number);
    mResolver = getContentResolver();

    // 設定値の取得
    String effect = ContShootingPreference.getCurrentEffect(this);
    String scene = ContShootingPreference.getCurrentSceneMode(this);
    String white = ContShootingPreference.getCurrentWhiteBalance(this);
    String size = ContShootingPreference.getCurrentPictureSize(this);
    mHiddenSizeIdx = Integer.parseInt(ContShootingPreference.getCurrentHiddenSize(this));

    // Log.d(TAG, "picsize = " + size);

    WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    Display disp = wm.getDefaultDisplay();
    mWidth = disp.getWidth();
    mHeight = disp.getHeight();

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    SurfaceView sv = (SurfaceView) findViewById(R.id.camera);
    mHolder = sv.getHolder();

    mPreview = new CameraPreview(this);
    mPreview.setField(effect, scene, white, size, mWidth, mHeight);
    mHolder.addCallback(mPreview);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    mText = (TextView) findViewById(R.id.text1);
    mText.setText(/*mNum + System.getProperty("line.separator") + */ "0" + " ");

    // 連写枚数設定
    String num = ContShootingPreference.getCurrentShootNum(this);
    if (!num.equals("0")) {
      mPreview.setShootNum(Integer.valueOf(num));
    }

    // 連写間隔設定
    String interval = ContShootingPreference.getCurrentInterval(this);
    if (!interval.equals("0")) {
      mPreview.setInterval(Integer.valueOf(interval));
    }

    // register UI Listener
    setListener();

    if (ContShootingPreference.isAutoShoot(this)) {
      mAutoFlag = true;
    }
  }
  private void init() {
    // make this view focusable
    setFocusable(true);

    // init fields
    viewportTransformation = new Matrix();
    newViewportTransformation = new Matrix();
    inverseViewportTransformation = new Matrix();

    selectionOffset = new float[2];
    touchPoint = new float[2];

    buffer = ByteBuffer.allocate(1024);

    scalingInterpolator = new TimedInterpolator();
    scalingInterpolator.setDuration(800);
    translationXInterpolator = new TimedInterpolator();
    translationXInterpolator.setDuration(800);
    translationYInterpolator = new TimedInterpolator();
    translationYInterpolator.setDuration(800);
    rotationInterpolator = new TimedInterpolator();
    rotationInterpolator.setDuration(800);
    centerRotationInterpolator = new TimedInterpolator();
    centerRotationInterpolator.setDuration(800);

    currentOrientation = getContext().getResources().getConfiguration().orientation;
    setOrientationFlag(true);

    if (SourcesView.paint == null) {
      SourcesView.paint = new Paint();
      SourcesView.paint.setAntiAlias(false);
      SourcesView.paint.setStrokeWidth(0);
      SourcesView.paint.setTextAlign(Paint.Align.CENTER);
      SourcesView.paint.setTextSize(9.0f);
    }

    // set up orientation event listener
    orientationEventListener =
        new OrientationEventListener(getContext(), SensorManager.SENSOR_DELAY_NORMAL) {
          @Override
          public void onOrientationChanged(int orientation) {
            if ((orientation >= 80 && orientation <= 100)
                || (orientation >= 260 && orientation <= 280)) { // landscape
              setOrientation(Configuration.ORIENTATION_LANDSCAPE);
            } else if ((orientation >= 350 || orientation <= 10)
                || (orientation >= 170 && orientation <= 190)) { // portrait
              setOrientation(Configuration.ORIENTATION_PORTRAIT);
            }
          }
        };
    if (!GlobalData
        .orientationTrackingEnabled) // orientation tracking and screen rotation tracking don't go
      // together
      orientationEventListener.enable();

    // set up gesture detector
    gestureDetector = new GestureDetector(getContext(), this);
    gestureDetector.setIsLongpressEnabled(false);
    gestureDetector.setOnDoubleTapListener(this);

    // init viewport transformation matrix
    recalculateViewportTransformation();
  }
Exemplo n.º 7
0
 @Override
 public void enable() {
   isEnabled = true;
   super.enable();
 }
 /** Register a sensor to track phoneOrientation changes */
 private synchronized void startOrientationSensor() {
   if (mOrientationHelper == null) {
     mOrientationHelper = new LocalOrientationEventListener(this);
   }
   mOrientationHelper.enable();
 }