按照如下修改尝试
diff --git a/kvim3/vendor_prop.mk b/kvim3/vendor_prop.mk
index fe9bab2..b8807eb 100755
--- a/kvim3/vendor_prop.mk
+++ b/kvim3/vendor_prop.mk
@@ -34,7 +34,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
ro.media.camera_preview.limitedrate=1920x1080x30,1280x720x30,640x480x30,320x240x28 \
ro.media.camera_preview.usemjpeg=1 \
ro.vendor.platform.board_camera=true \
- ro.vendor.camera_mipi.faceback=false \
+ ro.vendor.camera_mipi.faceback=true \
ro.vendor.camera_usb.faceback=true \
vendor.camera.mirror=true \
ro.vendor.platform.omx=true \
diff --git a/res/layout-land/mode_options.xml b/res/layout-land/mode_options.xml
index 7e49f4557..fdada87cc 100644
--- a/res/layout-land/mode_options.xml
+++ b/res/layout-land/mode_options.xml
@@ -95,7 +95,6 @@
<com.android.camera.MultiToggleImageButton
android:id="@+id/camera_toggle_button"
style="@style/ModeOption"
- camera:imageIds="@array/camera_id_icons"
camera:contentDescriptionIds="@array/camera_id_descriptions" />
<com.android.camera.MultiToggleImageButton
android:id="@+id/flash_toggle_button"
diff --git a/res/layout-port/mode_options.xml b/res/layout-port/mode_options.xml
index d9508bf5e..0ea66ee86 100644
--- a/res/layout-port/mode_options.xml
+++ b/res/layout-port/mode_options.xml
@@ -120,7 +120,6 @@
<com.android.camera.MultiToggleImageButton
android:id="@+id/camera_toggle_button"
style="@style/ModeOption"
- camera:imageIds="@array/camera_id_icons"
camera:contentDescriptionIds="@array/camera_id_descriptions" />
</com.android.camera.ui.TopRightWeightedLayout>
</com.android.camera.widget.ModeOptions>
diff --git a/res/layout/photo_bottombar_buttons.xml b/res/layout/photo_bottombar_buttons.xml
index fea91e23c..a61925bfd 100644
--- a/res/layout/photo_bottombar_buttons.xml
+++ b/res/layout/photo_bottombar_buttons.xml
@@ -28,8 +28,7 @@
android:id="@+id/camera_toggle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="@null"
- camera:imageIds="@array/camera_id_icons" />
+ android:background="@null" />
<com.android.camera.MultiToggleImageButton
android:id="@+id/hdr_plus_toggle_button"
android:layout_width="wrap_content"
diff --git a/res/layout/photo_intent_bottombar_buttons.xml b/res/layout/photo_intent_bottombar_buttons.xml
index c3ace9a54..43cc407ea 100644
--- a/res/layout/photo_intent_bottombar_buttons.xml
+++ b/res/layout/photo_intent_bottombar_buttons.xml
@@ -39,8 +39,7 @@
android:id="@+id/camera_toggle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="@null"
- camera:imageIds="@array/camera_id_icons" />
+ android:background="@null" />
<com.android.camera.MultiToggleImageButton
android:id="@+id/hdr_plus_toggle_button"
android:layout_width="wrap_content"
diff --git a/res/layout/video_bottombar_buttons.xml b/res/layout/video_bottombar_buttons.xml
index 5780c5409..0a6303325 100644
--- a/res/layout/video_bottombar_buttons.xml
+++ b/res/layout/video_bottombar_buttons.xml
@@ -28,6 +28,5 @@
android:id="@+id/camera_toggle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="@null"
- camera:imageIds="@array/camera_id_icons" />
+ android:background="@null" />
</merge>
\ No newline at end of file
diff --git a/res/layout/video_intent_bottombar_buttons.xml b/res/layout/video_intent_bottombar_buttons.xml
index c3583eaaa..897f655e6 100644
--- a/res/layout/video_intent_bottombar_buttons.xml
+++ b/res/layout/video_intent_bottombar_buttons.xml
@@ -39,6 +39,5 @@
android:id="@+id/camera_toggle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="@null"
- camera:imageIds="@array/camera_id_icons" />
+ android:background="@null" />
</merge>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 487265780..ce85ee285 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -181,10 +181,10 @@
<item>@string/pref_camera_id_label_front</item>
</array>
- <array name="camera_id_icons" translatable="false">
+ <!-- <array name="camera_id_icons" translatable="false">
<item>@drawable/ic_switch_camera_back</item>
<item>@drawable/ic_switch_camera_front</item>
- </array>
+ </array> -->
<array name="camera_id_descriptions" translatable="false">
<item>@string/camera_id_back_desc</item>
diff --git a/src/com/android/camera/ButtonManager.java b/src/com/android/camera/ButtonManager.java
index 4be4f0a3b..de90aa5df 100644
--- a/src/com/android/camera/ButtonManager.java
+++ b/src/com/android/camera/ButtonManager.java
@@ -362,7 +362,7 @@ public class ButtonManager implements SettingsManager.OnSettingChangedListener {
initializeHdrPlusFlashButton(button, cb, preCb, R.array.camera_flashmode_icons);
break;
case BUTTON_CAMERA:
- initializeCameraButton(button, cb, preCb, R.array.camera_id_icons);
+ //initializeCameraButton(button, cb, preCb, R.array.camera_id_icons);
break;
case BUTTON_HDR_PLUS:
initializeHdrPlusButton(button, cb, preCb, R.array.pref_camera_hdr_plus_icons);
<array name="camera_id_largeicons" translatable="false">
diff --git a/src/com/android/camera/Storage.java b/src/com/android/camera/Storage.java
index 842f9a4f6..be0671868 100644
--- a/src/com/android/camera/Storage.java
+++ b/src/com/android/camera/Storage.java
@@ -42,6 +42,9 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
+import android.graphics.Matrix;
+import com.android.camera.util.CameraUtil;
+import java.io.ByteArrayOutputStream;
import javax.annotation.Nonnull;
@@ -269,9 +272,18 @@ public class Storage {
public static Uri updateImage(Uri imageUri, ContentResolver resolver, String title, long date,
Location location, int orientation, ExifInterface exif,
byte[] jpeg, int width, int height, String mimeType) throws IOException {
+
+ Bitmap bitmap = CameraUtil.makeBitmap(jpeg, width * height);
+ Matrix m = new Matrix();
+ m.postScale(-1, 1);
+ bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
+ byte[] jpegData = baos.toByteArray();
+
String path = generateFilepath(title, mimeType);
- writeFile(path, jpeg, exif);
- return updateImage(imageUri, resolver, title, date, location, orientation, jpeg.length, path,
+ writeFile(path, jpegData, exif);
+ return updateImage(imageUri, resolver, title, date, location, orientation, jpegData.length, path,
width, height, mimeType);
}