diff options
65 files changed, 114 insertions, 48 deletions
diff --git a/res/drawable-hdpi/ic_indicators_cloudy.png b/res/drawable-hdpi/ic_indicators_cloudy.png Binary files differnew file mode 100644 index 0000000..ced46ce --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_cloudy.png diff --git a/res/drawable-hdpi/ic_indicators_fluorescent.png b/res/drawable-hdpi/ic_indicators_fluorescent.png Binary files differnew file mode 100644 index 0000000..c3420c6 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_fluorescent.png diff --git a/res/drawable-hdpi/ic_indicators_incandescent.png b/res/drawable-hdpi/ic_indicators_incandescent.png Binary files differnew file mode 100644 index 0000000..be9c307 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_incandescent.png diff --git a/res/drawable-hdpi/ic_indicators_landscape.png b/res/drawable-hdpi/ic_indicators_landscape.png Binary files differnew file mode 100644 index 0000000..8636fc0 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_landscape.png diff --git a/res/drawable-hdpi/ic_indicators_landscape_flash_auto.png b/res/drawable-hdpi/ic_indicators_landscape_flash_auto.png Binary files differnew file mode 100644 index 0000000..da3a0c9 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_landscape_flash_auto.png diff --git a/res/drawable-hdpi/ic_indicators_landscape_flash_off.png b/res/drawable-hdpi/ic_indicators_landscape_flash_off.png Binary files differnew file mode 100644 index 0000000..11239f0 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_landscape_flash_off.png diff --git a/res/drawable-hdpi/ic_indicators_landscape_flash_on.png b/res/drawable-hdpi/ic_indicators_landscape_flash_on.png Binary files differnew file mode 100644 index 0000000..c7af702 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_landscape_flash_on.png diff --git a/res/drawable-hdpi/ic_indicators_macro.png b/res/drawable-hdpi/ic_indicators_macro.png Binary files differnew file mode 100644 index 0000000..0ec71d5 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_macro.png diff --git a/res/drawable-hdpi/ic_indicators_scn.png b/res/drawable-hdpi/ic_indicators_scn.png Binary files differnew file mode 100644 index 0000000..675b1c5 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_scn.png diff --git a/res/drawable-hdpi/ic_indicators_sunlight.png b/res/drawable-hdpi/ic_indicators_sunlight.png Binary files differnew file mode 100644 index 0000000..f7fcba6 --- /dev/null +++ b/res/drawable-hdpi/ic_indicators_sunlight.png diff --git a/res/drawable-mdpi/ic_indicators_cloudy.png b/res/drawable-mdpi/ic_indicators_cloudy.png Binary files differnew file mode 100644 index 0000000..b089270 --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_cloudy.png diff --git a/res/drawable-mdpi/ic_indicators_fluorescent.png b/res/drawable-mdpi/ic_indicators_fluorescent.png Binary files differnew file mode 100644 index 0000000..0f6b74f --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_fluorescent.png diff --git a/res/drawable-mdpi/ic_indicators_incandescent.png b/res/drawable-mdpi/ic_indicators_incandescent.png Binary files differnew file mode 100644 index 0000000..6042142 --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_incandescent.png diff --git a/res/drawable-mdpi/ic_indicators_landscape.png b/res/drawable-mdpi/ic_indicators_landscape.png Binary files differnew file mode 100644 index 0000000..643ea7c --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_landscape.png diff --git a/res/drawable-mdpi/ic_indicators_landscape_flash_auto.png b/res/drawable-mdpi/ic_indicators_landscape_flash_auto.png Binary files differnew file mode 100644 index 0000000..38ac3b1 --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_landscape_flash_auto.png diff --git a/res/drawable-mdpi/ic_indicators_landscape_flash_off.png b/res/drawable-mdpi/ic_indicators_landscape_flash_off.png Binary files differnew file mode 100644 index 0000000..93cc249 --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_landscape_flash_off.png diff --git a/res/drawable-mdpi/ic_indicators_landscape_flash_on.png b/res/drawable-mdpi/ic_indicators_landscape_flash_on.png Binary files differnew file mode 100644 index 0000000..c65dc71 --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_landscape_flash_on.png diff --git a/res/drawable-mdpi/ic_indicators_macro.png b/res/drawable-mdpi/ic_indicators_macro.png Binary files differnew file mode 100644 index 0000000..f0ff4fe --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_macro.png diff --git a/res/drawable-mdpi/ic_indicators_scn.png b/res/drawable-mdpi/ic_indicators_scn.png Binary files differnew file mode 100644 index 0000000..5c152a8 --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_scn.png diff --git a/res/drawable-mdpi/ic_indicators_sunlight.png b/res/drawable-mdpi/ic_indicators_sunlight.png Binary files differnew file mode 100644 index 0000000..59bce0f --- /dev/null +++ b/res/drawable-mdpi/ic_indicators_sunlight.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_cloudy.png b/res/drawable-sw600dp-hdpi/ic_indicators_cloudy.png Binary files differnew file mode 100644 index 0000000..cafcff4 --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_cloudy.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_fluorescent.png b/res/drawable-sw600dp-hdpi/ic_indicators_fluorescent.png Binary files differnew file mode 100644 index 0000000..79ac9bb --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_fluorescent.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_incandescent.png b/res/drawable-sw600dp-hdpi/ic_indicators_incandescent.png Binary files differnew file mode 100644 index 0000000..a1dae2a --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_incandescent.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_landscape.png b/res/drawable-sw600dp-hdpi/ic_indicators_landscape.png Binary files differnew file mode 100644 index 0000000..4019661 --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_landscape.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_auto.png b/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_auto.png Binary files differnew file mode 100644 index 0000000..d571c0a --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_auto.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_off.png b/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_off.png Binary files differnew file mode 100644 index 0000000..b5b7e7c --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_off.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_on.png b/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_on.png Binary files differnew file mode 100644 index 0000000..28ce420 --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_landscape_flash_on.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_macro.png b/res/drawable-sw600dp-hdpi/ic_indicators_macro.png Binary files differnew file mode 100644 index 0000000..5770a45 --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_macro.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_scn.png b/res/drawable-sw600dp-hdpi/ic_indicators_scn.png Binary files differnew file mode 100644 index 0000000..e8b0129 --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_scn.png diff --git a/res/drawable-sw600dp-hdpi/ic_indicators_sunlight.png b/res/drawable-sw600dp-hdpi/ic_indicators_sunlight.png Binary files differnew file mode 100644 index 0000000..91abd26 --- /dev/null +++ b/res/drawable-sw600dp-hdpi/ic_indicators_sunlight.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_cloudy.png b/res/drawable-sw600dp-mdpi/ic_indicators_cloudy.png Binary files differnew file mode 100644 index 0000000..6b16cab --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_cloudy.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_fluorescent.png b/res/drawable-sw600dp-mdpi/ic_indicators_fluorescent.png Binary files differnew file mode 100644 index 0000000..d7c23bc --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_fluorescent.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_incandescent.png b/res/drawable-sw600dp-mdpi/ic_indicators_incandescent.png Binary files differnew file mode 100644 index 0000000..5e63b43 --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_incandescent.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_landscape.png b/res/drawable-sw600dp-mdpi/ic_indicators_landscape.png Binary files differnew file mode 100644 index 0000000..36a66f5 --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_landscape.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_auto.png b/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_auto.png Binary files differnew file mode 100644 index 0000000..95e410c --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_auto.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_off.png b/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_off.png Binary files differnew file mode 100644 index 0000000..11ebc4f --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_off.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_on.png b/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_on.png Binary files differnew file mode 100644 index 0000000..2cb4f15 --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_landscape_flash_on.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_macro.png b/res/drawable-sw600dp-mdpi/ic_indicators_macro.png Binary files differnew file mode 100644 index 0000000..61ec7a4 --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_macro.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_scn.png b/res/drawable-sw600dp-mdpi/ic_indicators_scn.png Binary files differnew file mode 100644 index 0000000..da55fdb --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_scn.png diff --git a/res/drawable-sw600dp-mdpi/ic_indicators_sunlight.png b/res/drawable-sw600dp-mdpi/ic_indicators_sunlight.png Binary files differnew file mode 100644 index 0000000..4c8d29e --- /dev/null +++ b/res/drawable-sw600dp-mdpi/ic_indicators_sunlight.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_cloudy.png b/res/drawable-sw600dp-xhdpi/ic_indicators_cloudy.png Binary files differnew file mode 100644 index 0000000..2fcd207 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_cloudy.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_fluorescent.png b/res/drawable-sw600dp-xhdpi/ic_indicators_fluorescent.png Binary files differnew file mode 100644 index 0000000..6214325 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_fluorescent.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_incandescent.png b/res/drawable-sw600dp-xhdpi/ic_indicators_incandescent.png Binary files differnew file mode 100644 index 0000000..dadc491 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_incandescent.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_landscape.png b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape.png Binary files differnew file mode 100644 index 0000000..224a0c8 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_auto.png b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_auto.png Binary files differnew file mode 100644 index 0000000..4ac81d8 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_auto.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_off.png b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_off.png Binary files differnew file mode 100644 index 0000000..86bf496 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_off.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_on.png b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_on.png Binary files differnew file mode 100644 index 0000000..9bb5afa --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_landscape_flash_on.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_macro.png b/res/drawable-sw600dp-xhdpi/ic_indicators_macro.png Binary files differnew file mode 100644 index 0000000..5c83fec --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_macro.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_scn.png b/res/drawable-sw600dp-xhdpi/ic_indicators_scn.png Binary files differnew file mode 100644 index 0000000..0d145fb --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_scn.png diff --git a/res/drawable-sw600dp-xhdpi/ic_indicators_sunlight.png b/res/drawable-sw600dp-xhdpi/ic_indicators_sunlight.png Binary files differnew file mode 100644 index 0000000..79a8e46 --- /dev/null +++ b/res/drawable-sw600dp-xhdpi/ic_indicators_sunlight.png diff --git a/res/drawable-xhdpi/ic_indicators_cloudy.png b/res/drawable-xhdpi/ic_indicators_cloudy.png Binary files differnew file mode 100644 index 0000000..a6d924b --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_cloudy.png diff --git a/res/drawable-xhdpi/ic_indicators_fluorescent.png b/res/drawable-xhdpi/ic_indicators_fluorescent.png Binary files differnew file mode 100644 index 0000000..012c67f --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_fluorescent.png diff --git a/res/drawable-xhdpi/ic_indicators_incandescent.png b/res/drawable-xhdpi/ic_indicators_incandescent.png Binary files differnew file mode 100644 index 0000000..84bbd6a --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_incandescent.png diff --git a/res/drawable-xhdpi/ic_indicators_landscape.png b/res/drawable-xhdpi/ic_indicators_landscape.png Binary files differnew file mode 100644 index 0000000..ebbcd67 --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_landscape.png diff --git a/res/drawable-xhdpi/ic_indicators_landscape_flash_auto.png b/res/drawable-xhdpi/ic_indicators_landscape_flash_auto.png Binary files differnew file mode 100644 index 0000000..654746b --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_landscape_flash_auto.png diff --git a/res/drawable-xhdpi/ic_indicators_landscape_flash_off.png b/res/drawable-xhdpi/ic_indicators_landscape_flash_off.png Binary files differnew file mode 100644 index 0000000..8edc075 --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_landscape_flash_off.png diff --git a/res/drawable-xhdpi/ic_indicators_landscape_flash_on.png b/res/drawable-xhdpi/ic_indicators_landscape_flash_on.png Binary files differnew file mode 100644 index 0000000..7f33bd5 --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_landscape_flash_on.png diff --git a/res/drawable-xhdpi/ic_indicators_macro.png b/res/drawable-xhdpi/ic_indicators_macro.png Binary files differnew file mode 100644 index 0000000..7d34b85 --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_macro.png diff --git a/res/drawable-xhdpi/ic_indicators_scn.png b/res/drawable-xhdpi/ic_indicators_scn.png Binary files differnew file mode 100644 index 0000000..fafc0bc --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_scn.png diff --git a/res/drawable-xhdpi/ic_indicators_sunlight.png b/res/drawable-xhdpi/ic_indicators_sunlight.png Binary files differnew file mode 100644 index 0000000..71a0f68 --- /dev/null +++ b/res/drawable-xhdpi/ic_indicators_sunlight.png diff --git a/res/layout-w1024dp/priority_indicators.xml b/res/layout-sw600dp/priority_indicators.xml index 4926484..77067b0 100644 --- a/res/layout-w1024dp/priority_indicators.xml +++ b/res/layout-sw600dp/priority_indicators.xml @@ -20,15 +20,21 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp"> - <ImageView style="@style/OnScreenIndicator" - android:id="@+id/onscreen_gps_indicator_no_signal" - android:src="@drawable/ic_viewfinder_gps_no_signal"/> - <ImageView style="@style/OnScreenIndicator" - android:id="@+id/onscreen_gps_indicator_on" - android:src="@drawable/ic_viewfinder_gps_on"/> - <TextView style="@style/OnScreenIndicator" - android:id="@+id/onscreen_exposure_indicator" + <ImageView android:id="@+id/onscreen_flash_indicator" + style="@style/OnScreenIndicator" + android:visibility="visible"/> + <ImageView android:id="@+id/onscreen_white_balance_indicator" + style="@style/OnScreenIndicator"/> + <TextView android:id="@+id/onscreen_exposure_indicator" + style="@style/OnScreenIndicator" android:gravity="center_vertical" android:textSize="15dp" android:textColor="@android:color/white"/> + <ImageView android:id="@+id/onscreen_scene_indicator" + style="@style/OnScreenIndicator" + android:src="@drawable/ic_indicators_scn"/> + <ImageView android:id="@+id/onscreen_gps_indicator" + style="@style/OnScreenIndicator"/> + <ImageView android:id="@+id/onscreen_focus_indicator" + style="@style/OnScreenIndicator"/> </LinearLayout> diff --git a/res/layout/priority_indicators.xml b/res/layout/priority_indicators.xml index 794dfb8..a8318e0 100644 --- a/res/layout/priority_indicators.xml +++ b/res/layout/priority_indicators.xml @@ -20,19 +20,23 @@ android:layout_height="wrap_content" android:layout_width="wrap_content" android:padding="8dp"> - <ImageView style="@style/OnScreenIndicator" - android:padding="1dp" - android:id="@+id/onscreen_gps_indicator_no_signal" - android:src="@drawable/ic_viewfinder_gps_no_signal"/> - <ImageView style="@style/OnScreenIndicator" - android:padding="1dp" - android:id="@+id/onscreen_gps_indicator_on" - android:src="@drawable/ic_viewfinder_gps_on"/> - <TextView style="@style/OnScreenIndicator" - android:id="@+id/onscreen_exposure_indicator" + <ImageView android:id="@+id/onscreen_flash_indicator" + style="@style/OnScreenIndicator" + android:visibility="visible"/> + <ImageView android:id="@+id/onscreen_white_balance_indicator" + style="@style/OnScreenIndicator"/> + <TextView android:id="@+id/onscreen_exposure_indicator" + style="@style/OnScreenIndicator" android:layout_marginTop="6dp" - android:rotation="90.0" + android:layout_marginBottom="6dp" android:gravity="center_vertical" android:textSize="15dp" android:textColor="@android:color/white"/> + <ImageView android:id="@+id/onscreen_scene_indicator" + style="@style/OnScreenIndicator" + android:src="@drawable/ic_indicators_scn"/> + <ImageView android:id="@+id/onscreen_gps_indicator" + style="@style/OnScreenIndicator"/> + <ImageView android:id="@+id/onscreen_focus_indicator" + style="@style/OnScreenIndicator"/> </LinearLayout> diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml index 65d3683..6b7427f 100644 --- a/res/values-sw600dp/styles.xml +++ b/res/values-sw600dp/styles.xml @@ -43,6 +43,14 @@ <item name="android:textSize">12sp</item> <item name="android:textStyle">bold</item> </style> + <style name="OnScreenIndicator"> + <item name="android:layout_height">28dp</item> + <item name="android:layout_width">wrap_content</item> + <item name="android:layout_gravity">center_vertical</item> + <item name="android:focusable">false</item> + <item name="android:visibility">gone</item> + <item name="android:layout_marginRight">8dp</item> + </style> <style name="ReviewThumbnail"> <item name="android:layout_width">86dp</item> <item name="android:layout_height">86dp</item> diff --git a/res/values/styles.xml b/res/values/styles.xml index 1503742..e60b2a7 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -141,10 +141,11 @@ <style name="OnScreenIndicator"> <item name="android:layout_height">28dp</item> <item name="android:layout_width">wrap_content</item> - <item name="android:layout_gravity">center_vertical</item> + <item name="android:layout_gravity">center_horizontal</item> <item name="android:focusable">false</item> <item name="android:visibility">gone</item> - <item name="android:layout_marginRight">8dp</item> + <item name="android:rotation">90</item> + <item name="android:padding">1dp</item> </style> <style name="ViewfinderLableLayout"> <item name="android:layout_width">match_parent</item> diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index ff98f4a..c3f5d95 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -66,6 +66,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.animation.AnimationUtils; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; @@ -159,7 +160,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener, private RotateImageView mThumbnailView; private ModePicker mModePicker; private FaceView mFaceView; - private RotateLayout mFocusIndicator; + private RotateLayout mFocusAreaIndicator; private Rotatable mReviewCancelButton; private Rotatable mReviewDoneButton; @@ -167,10 +168,13 @@ public class Camera extends ActivityBase implements FocusManager.Listener, private String mCropValue; private Uri mSaveUri; - // On-screen indicator - private View mGpsNoSignalIndicator; - private View mGpsHasSignalIndicator; + // Small indicators which show the camera settings in the viewfinder. private TextView mExposureIndicator; + private ImageView mGpsIndicator; + private ImageView mFlashIndicator; + private ImageView mSceneIndicator; + private ImageView mWhiteBalanceIndicator; + private ImageView mFocusIndicator; // We use a thread in ImageSaver to do the work of saving images and // generating thumbnails. This reduces the shot-to-shot time. @@ -379,16 +383,17 @@ public class Camera extends ActivityBase implements FocusManager.Listener, // Initialize focus UI. mPreviewFrame = findViewById(R.id.camera_preview); mPreviewFrame.setOnTouchListener(this); - mFocusIndicator = (RotateLayout) findViewById(R.id.focus_indicator_rotate_layout); + mFocusAreaIndicator = (RotateLayout) findViewById(R.id.focus_indicator_rotate_layout); CameraInfo info = CameraHolder.instance().getCameraInfo()[mCameraId]; boolean mirror = (info.facing == CameraInfo.CAMERA_FACING_FRONT); - mFocusManager.initialize(mFocusIndicator, mPreviewFrame, mFaceView, this, + mFocusManager.initialize(mFocusAreaIndicator, mPreviewFrame, mFaceView, this, mirror, mDisplayOrientation); mFocusManager.initializeSoundPlayer(getResources().openRawResourceFd(R.raw.camera_focus)); mImageSaver = new ImageSaver(); Util.initializeScreenBrightness(getWindow(), getContentResolver()); installIntentFilter(); initializeZoom(); + updateOnScreenIndicators(); startFaceDetection(); // Show the tap to focus toast if this is the first start. if (mFocusAreaSupported && @@ -598,39 +603,31 @@ public class Camera extends ActivityBase implements FocusManager.Listener, }; private void initOnScreenIndicator() { - mGpsNoSignalIndicator = findViewById(R.id.onscreen_gps_indicator_no_signal); - mGpsHasSignalIndicator = findViewById(R.id.onscreen_gps_indicator_on); + mGpsIndicator = (ImageView) findViewById(R.id.onscreen_gps_indicator); mExposureIndicator = (TextView) findViewById(R.id.onscreen_exposure_indicator); + mFlashIndicator = (ImageView) findViewById(R.id.onscreen_flash_indicator); + mSceneIndicator = (ImageView) findViewById(R.id.onscreen_scene_indicator); + mWhiteBalanceIndicator = + (ImageView) findViewById(R.id.onscreen_white_balance_indicator); + mFocusIndicator = (ImageView) findViewById(R.id.onscreen_focus_indicator); } @Override public void showGpsOnScreenIndicator(boolean hasSignal) { if (hasSignal) { - if (mGpsNoSignalIndicator != null) { - mGpsNoSignalIndicator.setVisibility(View.GONE); - } - if (mGpsHasSignalIndicator != null) { - mGpsHasSignalIndicator.setVisibility(View.VISIBLE); - } + mGpsIndicator.setImageResource(R.drawable.ic_viewfinder_gps_on); } else { - if (mGpsNoSignalIndicator != null) { - mGpsNoSignalIndicator.setVisibility(View.VISIBLE); - } - if (mGpsHasSignalIndicator != null) { - mGpsHasSignalIndicator.setVisibility(View.GONE); - } + mGpsIndicator.setImageResource(R.drawable.ic_viewfinder_gps_no_signal); } + mGpsIndicator.setVisibility(View.VISIBLE); } @Override public void hideGpsOnScreenIndicator() { - if (mGpsNoSignalIndicator != null) mGpsNoSignalIndicator.setVisibility(View.GONE); - if (mGpsHasSignalIndicator != null) mGpsHasSignalIndicator.setVisibility(View.GONE); + mGpsIndicator.setVisibility(View.GONE); } private void updateExposureOnScreenIndicator(int value) { - if (mExposureIndicator == null) return; - if (value == 0) { mExposureIndicator.setText(""); mExposureIndicator.setVisibility(View.GONE); @@ -645,6 +642,57 @@ public class Camera extends ActivityBase implements FocusManager.Listener, } } + private void updateFlashOnScreenIndicator(String value) { + if (Parameters.FLASH_MODE_AUTO.equals(value)) { + mFlashIndicator.setImageResource(R.drawable.ic_indicators_landscape_flash_auto); + } else if (Parameters.FLASH_MODE_ON.equals(value)) { + mFlashIndicator.setImageResource(R.drawable.ic_indicators_landscape_flash_on); + } else if (Parameters.FLASH_MODE_OFF.equals(value)) { + mFlashIndicator.setImageResource(R.drawable.ic_indicators_landscape_flash_off); + } + } + + private void updateSceneOnScreenIndicator(boolean isVisible) { + mSceneIndicator.setVisibility(isVisible ? View.VISIBLE : View.GONE); + } + + private void updateWhiteBalanceOnScreenIndicator(String value) { + if (Parameters.WHITE_BALANCE_AUTO.equals(value)) { + mWhiteBalanceIndicator.setVisibility(View.GONE); + } else { + if (Parameters.WHITE_BALANCE_FLUORESCENT.equals(value)) { + mWhiteBalanceIndicator.setImageResource(R.drawable.ic_indicators_fluorescent); + } else if (Parameters.WHITE_BALANCE_INCANDESCENT.equals(value)) { + mWhiteBalanceIndicator.setImageResource(R.drawable.ic_indicators_incandescent); + } else if (Parameters.WHITE_BALANCE_DAYLIGHT.equals(value)) { + mWhiteBalanceIndicator.setImageResource(R.drawable.ic_indicators_sunlight); + } else if (Parameters.WHITE_BALANCE_CLOUDY_DAYLIGHT.equals(value)) { + mWhiteBalanceIndicator.setImageResource(R.drawable.ic_indicators_cloudy); + } + mWhiteBalanceIndicator.setVisibility(View.VISIBLE); + } + } + + private void updateFocusOnScreenIndicator(String value) { + if (Parameters.FOCUS_MODE_INFINITY.equals(value)) { + mFocusIndicator.setImageResource(R.drawable.ic_indicators_landscape); + mFocusIndicator.setVisibility(View.VISIBLE); + } else if (Parameters.FOCUS_MODE_MACRO.equals(value)) { + mFocusIndicator.setImageResource(R.drawable.ic_indicators_macro); + mFocusIndicator.setVisibility(View.VISIBLE); + } else { + mFocusIndicator.setVisibility(View.GONE); + } + } + + private void updateOnScreenIndicators() { + boolean isAutoScene = !(Parameters.SCENE_MODE_AUTO.equals(mParameters.getSceneMode())); + updateSceneOnScreenIndicator(isAutoScene); + updateExposureOnScreenIndicator(CameraSettings.readExposure(mPreferences)); + updateFlashOnScreenIndicator(mParameters.getFlashMode()); + updateWhiteBalanceOnScreenIndicator(mParameters.getWhiteBalance()); + updateFocusOnScreenIndicator(mParameters.getFocusMode()); + } private final class ShutterCallback implements android.hardware.Camera.ShutterCallback { public void onShutter() { @@ -1241,7 +1289,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener, private void setOrientationIndicator(int orientation) { Rotatable[] indicators = {mThumbnailView, mModePicker, mSharePopup, - mIndicatorControlContainer, mZoomControl, mFocusIndicator, mFaceView, + mIndicatorControlContainer, mZoomControl, mFocusAreaIndicator, mFaceView, mReviewCancelButton, mReviewDoneButton, mRotateDialog}; for (Rotatable indicator : indicators) { if (indicator != null) indicator.setOrientation(orientation); @@ -2151,8 +2199,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener, setCameraParametersWhenIdle(UPDATE_PARAM_PREFERENCE); } - int exposureValue = CameraSettings.readExposure(mPreferences); - updateExposureOnScreenIndicator(exposureValue); + updateOnScreenIndicators(); } @Override |