rk3288 android7.1.2 添加预览尺寸

添加预览尺寸:

--- a/packages/apps/Camera2/res/values-en-rGB/strings.xml
+++ b/packages/apps/Camera2/res/values-en-rGB/strings.xml
@@ -94,6 +94,7 @@
     <string name="pref_camera_settings_category" msgid="4274141528139077830">"Camera settings"</string>
     <string name="pref_camcorder_settings_category" msgid="3553148484755353397">"Camcorder settings"</string>
     <string name="pref_camera_picturesize_title" msgid="686045304547541815">"Picture size"</string>
+    <string name="pref_camera_previewsize_title" msgid="686045304547541816">"Preview size"</string>
     <string name="pref_camera_picturesize_entry_large" msgid="9014447075089601575">"Large"</string>
     <string name="pref_camera_picturesize_entry_medium" msgid="7708839551627003154">"Medium"</string>
     <string name="pref_camera_picturesize_entry_small" msgid="2991239656622539068">"Small"</string>
--- a/packages/apps/Camera2/res/values-zh-rCN/strings.xml
+++ b/packages/apps/Camera2/res/values-zh-rCN/strings.xml
@@ -94,6 +94,7 @@
     <string name="pref_camera_settings_category" msgid="4274141528139077830">"相机设置"</string>
     <string name="pref_camcorder_settings_category" msgid="3553148484755353397">"摄像机设置"</string>
     <string name="pref_camera_picturesize_title" msgid="686045304547541815">"照片尺寸"</string>
+    <string name="pref_camera_previewsize_title" msgid="686045304547541816">"预览尺寸"</string>
     <string name="pref_camera_picturesize_entry_large" msgid="9014447075089601575">"大"</string>
     <string name="pref_camera_picturesize_entry_medium" msgid="7708839551627003154">"中"</string>
     <string name="pref_camera_picturesize_entry_small" msgid="2991239656622539068">"小"</string>
--- a/packages/apps/Camera2/res/values/arrays.xml
+++ b/packages/apps/Camera2/res/values/arrays.xml
@@ -664,4 +664,27 @@
         <item>@string/pref_media_save_path_flash</item>
         <item>@string/pref_media_save_path_external_sd</item>
     </string-array>
+
+    <string-array name="pref_camera_previewsize_entries" translatable="false">
+        <item>320x240</item>
+        <item>352x288</item>
+        <item>640x480</item>
+        <item>800x600</item>
+        <item>1024x768</item>
+        <item>1280x720</item>
+        <item>1280x1024</item>
+        <item>1920x1080</item>
+    </string-array>
+
+    <string-array name="pref_camera_previewsize_entryvalues" translatable="false">
+        <item>320x240</item>
+        <item>352x288</item>
+        <item>640x480</item>
+        <item>800x600</item>
+        <item>1024x768</item>
+        <item>1280x720</item>
+        <item>1280x1024</item>
+        <item>1920x1080</item>
+    </string-array>
+
--- a/packages/apps/Camera2/res/values/strings.xml
+++ b/packages/apps/Camera2/res/values/strings.xml
@@ -236,6 +236,7 @@

     <!-- Settings screen, Picture size title -->
     <string name="pref_camera_picturesize_title">Picture size</string>
+    <string name="pref_camera_previewsize_title">Preview size</string>

     <!-- Settings screen, dialog choice for "large" picture size [CHAR LIMIT=20] -->
     <string name="pref_camera_picturesize_entry_large">Large</string>
diff --git a/packages/apps/Camera2/res/xml/camera_preferences.xml b/packages/apps/Camera2/res/xml/camera_preferences.xml
index 71ce62f4bc..7630cb9340 100644
--- a/packages/apps/Camera2/res/xml/camera_preferences.xml
+++ b/packages/apps/Camera2/res/xml/camera_preferences.xml
@@ -36,6 +36,11 @@
           android:entryValues="@array/pref_camera_picturesize_entryvalues"
           android:key="pref_camera_picturesize_front_key"
           android:title="@string/setting_front_camera_photo" />
+      <ListPreference
+          android:key="pref_camera_previewsize_key"
+          android:title="@string/pref_camera_previewsize_title"
+          android:entries="@array/pref_camera_previewsize_entries"
+          android:entryValues="@array/pref_camera_previewsize_entryvalues" />
     </PreferenceCategory>
     <PreferenceCategory android:title="@string/mode_video" >
--- a/packages/apps/Camera2/src/com/android/camera/PhotoModule.java
+++ b/packages/apps/Camera2/src/com/android/camera/PhotoModule.java
@@ -43,6 +43,8 @@ import android.view.OrientationEventListener;
 import android.view.View;
 import android.widget.Toast;

+import android.content.Context;
+import android.content.SharedPreferences;
 import com.android.camera.PhotoModule.NamedImages.NamedEntity;
 import com.android.camera.app.AppController;
 import com.android.camera.app.CameraAppUI;
@@ -135,6 +137,7 @@ public class PhotoModule

     private CameraActivity mActivity;
     private CameraProxy mCameraDevice;
+    private Context context;
     private int mCameraId;
     private CameraCapabilities mCameraCapabilities;
     private List<String> mSupportedColorEffects;
@@ -3218,8 +3221,20 @@ public class PhotoModule
         // Set a preview size that is closest to the viewfinder height and has
         // the right aspect ratio.
         List<Size> sizes = Size.convert(mCameraCapabilities.getSupportedPreviewSizes());
-        Size optimalSize = CameraUtil.getOptimalPreviewSize(sizes,
-                (double) pictureSize.width() / pictureSize.height());
+        //Size optimalSize = CameraUtil.getOptimalPreviewSize(sizes,
+        //        (double) pictureSize.width() / pictureSize.height());
+        context = mActivity;
+        int width = 640, height = 480;
+        SharedPreferences cameraSetting= context.getSharedPreferences("camera_setting", Context.MODE_PRIVATE);
+        String value=cameraSetting.getString("preview_size", null);
+        if (value != null) {
+            int index = value.indexOf('x');
+            if (index != -1) {
+                width = Integer.parseInt(value.substring(0, index));
+                height = Integer.parseInt(value.substring(index + 1));
+            }
+        }
+        Size optimalSize = new Size(width, height);
         Size original = new Size(mCameraSettings.getCurrentPreviewSize());
         if (!optimalSize.equals(original)) {
             Log.v(TAG, "setting preview size. optimal: " + optimalSize + "original: " + original);
--- a/packages/apps/Camera2/src/com/android/camera/VideoUI.java
+++ b/packages/apps/Camera2/src/com/android/camera/VideoUI.java
@@ -30,6 +30,9 @@ import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
+import android.preference.ListPreference;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;

 import com.android.camera.app.OrientationManager;
 import com.android.camera.debug.Log;
--- a/packages/apps/Camera2/src/com/android/camera/settings/CameraSettingsActivity.java
+++ b/packages/apps/Camera2/src/com/android/camera/settings/CameraSettingsActivity.java
@@ -148,7 +148,7 @@ public class CameraSettingsActivity extends FragmentActivity {
     }

     public static class CameraSettingsFragment extends PreferenceFragment implements
-            OnSharedPreferenceChangeListener {
+            OnSharedPreferenceChangeListener ,Preference.OnPreferenceChangeListener{

         public static final String PREF_CATEGORY_RESOLUTION = "pref_category_resolution";
         public static final String PREF_CATEGORY_ADVANCED = "pref_category_advanced";
@@ -178,6 +178,10 @@ public class CameraSettingsActivity extends FragmentActivity {
         private String FLASH;

         private OneCameraManager mOneCameraManager;
+        private ListPreference previewSize;
+        private SharedPreferences sharedPreferences;
+        private SharedPreferences.Editor editor;
+        private Context context;

         @Override
         public void onCreate(Bundle savedInstanceState) {
@@ -187,8 +191,14 @@ public class CameraSettingsActivity extends FragmentActivity {
                 mPrefKey = arguments.getString(PREF_SCREEN_EXTRA);
                 mHideAdvancedScreen = arguments.getBoolean(HIDE_ADVANCED_SCREEN);
             }
-            Context context = this.getActivity().getApplicationContext();
+            context = this.getActivity().getApplicationContext();
             addPreferencesFromResource(R.xml.camera_preferences);
+            previewSize = (ListPreference) findPreference(Keys.KEY_PREVIEW_SIZE);
+            previewSize.setOnPreferenceChangeListener(this);
+            //previewSize.setOnPreferenceClickListener(this);
+            SharedPreferences cameraSetting= context.getSharedPreferences("camera_setting", Context.MODE_PRIVATE);
+            editor = cameraSetting.edit();
+
             PreferenceScreen advancedScreen =
                     (PreferenceScreen) findPreference(PREF_CATEGORY_ADVANCED);

@@ -231,6 +241,13 @@ public class CameraSettingsActivity extends FragmentActivity {
             super.onResume();
             final Activity activity = this.getActivity();

+            SharedPreferences cameraSetting= context.getSharedPreferences("camera_setting", Context.MODE_PRIVATE);
+            String value=cameraSetting.getString("preview_size", null);
+            if(value != null)
+                previewSize.setValue(value);
+            else
+                previewSize.setValue("640x480");
+
             // Load the camera sizes.
             loadSizes();
@@ -308,6 +325,16 @@ public class CameraSettingsActivity extends FragmentActivity {
                        restoreMediaSavePath();
         }

+        public boolean onPreferenceChange(Preference preference, Object obj) {
+            String key = preference.getKey();
+
+            if(preference == previewSize){
+                editor.putString("preview_size", (String) obj);
+                editor.commit();
+            }
+            return true;
+        }
+
         private void setDefaultPicturesize(CameraId cameraId, Facing cameraFacing) {
             if (cameraId == null) return;
             final String pictureSizeSettingKey = cameraFacing == OneCamera.Facing.FRONT ?
--- a/packages/apps/Camera2/src/com/android/camera/settings/Keys.java
+++ b/packages/apps/Camera2/src/com/android/camera/settings/Keys.java
@@ -41,6 +41,7 @@ public class Keys {
     public static final String KEY_VIDEO_QUALITY_FRONT = "pref_video_quality_front_key";
     public static final String KEY_PICTURE_SIZE_BACK = "pref_camera_picturesize_back_key";
     public static final String KEY_PICTURE_SIZE_FRONT = "pref_camera_picturesize_front_key";
+    public static final String KEY_PREVIEW_SIZE = "pref_camera_previewsize_key";
     public static final String KEY_JPEG_QUALITY = "pref_camera_jpegquality_key";
     public static final String KEY_FOCUS_MODE = "pref_camera_focusmode_key";
     public static final String KEY_FLASH_MODE = "pref_camera_flashmode_key";
@@ -194,6 +195,14 @@ public class Keys {
                                          Keys.KEY_PICTURE_SIZE_FRONT);
         }

+        settingsManager.setDefaults(KEY_PREVIEW_SIZE,
+            context.getString(R.string.pref_camera_picturesize_default),
+            context.getResources().getStringArray(R.array.pref_camera_picturesize_entryvalues));
+        if (!settingsManager.isSet(SettingsManager.SCOPE_GLOBAL, Keys.KEY_PREVIEW_SIZE)) {
+            settingsManager.setToDefault(SettingsManager.SCOPE_GLOBAL,
+                                         Keys.KEY_PREVIEW_SIZE);
+        }
+
         settingsManager.setDefaults(KEY_JPEG_QUALITY,
             context.getString(R.string.pref_camera_jpeg_quality_normal),
             context.getResources().getStringArray(
@@ -373,6 +382,10 @@ public class Keys {
             settingsManager.setToDefault(SettingsManager.SCOPE_GLOBAL,
                     KEY_PICTURE_SIZE_FRONT);

+        if (settingsManager.isSet(SettingsManager.SCOPE_GLOBAL, KEY_PREVIEW_SIZE))
+            settingsManager.setToDefault(SettingsManager.SCOPE_GLOBAL,
+                    KEY_PREVIEW_SIZE);
+
         if (settingsManager.isSet(SettingsManager.SCOPE_GLOBAL, KEY_STARTUP_MODULE_INDEX))
             settingsManager.setToDefault(SettingsManager.SCOPE_GLOBAL,
                 KEY_STARTUP_MODULE_INDEX);

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值