// 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(); }
@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(); }
@Override public void onResume() { super.onResume(); if (camera != null) { try { camera.reconnect(); } catch (IOException e) { e.printStackTrace(); } } if (orientationListener == null) { initOrientationListener(); } orientationListener.enable(); }
// 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(); }
@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(); }