蓝天-彭 发表于 2016-3-25 09:46:18

A20 添加显示横竖屏切换

在Setting里的辅助功能添加横竖屏切换按钮:

diff --git a/device/softwinner/common/packages/TvdSettings/res/xml/accessibility_settings.xml b/device/softwinner/common/packages/TvdSettings/res/xml/accessibility_settings.xml
index 8ee435f..a3d1aad 100644 (file)
--- a/device/softwinner/common/packages/TvdSettings/res/xml/accessibility_settings.xml
+++ b/device/softwinner/common/packages/TvdSettings/res/xml/accessibility_settings.xml
@@ -32,11 +32,11 @@
             android:key="screen_magnification_preference_screen"
             android:title="@string/accessibility_screen_magnification_title"/>

-      <!--CheckBoxPreference
+      <CheckBoxPreference
               android:key="rotate_screen"
               android:title="@string/rotate_screen_tittle"
               android:persistent="false"
-                /-->
+                />
         <CheckBoxPreference
               android:key="toggle_large_text_preference"
               android:title="@string/accessibility_toggle_large_text_preference_title"
diff --git a/device/softwinner/common/packages/TvdSettings/src/com/android/settings/AccessibilitySettings.java b/device/softwinner/common/packages/TvdSettings/src/com/android/settings/AccessibilitySettings.java
index 339b2ef..d20f9bb 100644 (file)
--- a/device/softwinner/common/packages/TvdSettings/src/com/android/settings/AccessibilitySettings.java
+++ b/device/softwinner/common/packages/TvdSettings/src/com/android/settings/AccessibilitySettings.java
@@ -174,8 +174,8 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
   private PreferenceCategory mServicesCategory;
   private PreferenceCategory mSystemsCategory;
   
-//    private final String ROTATE_SCREEN="rotate_screen";
-//    private CheckBoxPreference mRotateScreen;
+    private final String ROTATE_SCREEN="rotate_screen";
+    private CheckBoxPreference mRotateScreen;
   private CheckBoxPreference mToggleLargeTextPreference;
   private CheckBoxPreference mTogglePowerButtonEndsCallPreference;
   private CheckBoxPreference mToggleLockScreenRotationPreference;
@@ -193,12 +193,12 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
         super.onCreate(icicle);
         addPreferencesFromResource(R.xml.accessibility_settings);
         initializeAllPreferences();
-//      mRotateScreen=(CheckBoxPreference)findPreference(ROTATE_SCREEN);
-//      int RotateScreen=Settings.System.getInt(this.getContentResolver(), "rotate_screen", 0);
-//      if(RotateScreen==1)
-//             mRotateScreen.setChecked(true);
-//      else
-//             mRotateScreen.setChecked(false);
+      mRotateScreen=(CheckBoxPreference)findPreference(ROTATE_SCREEN);
+      int RotateScreen=Settings.System.getInt(this.getContentResolver(), "rotate_screen", 0);
+      if(RotateScreen==1)
+               mRotateScreen.setChecked(true);
+      else
+               mRotateScreen.setChecked(false);
   }

   @Override
@@ -239,11 +239,11 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
   @Override
   public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
      //add by James
-//      if(mRotateScreen==preference)
- //       {
-//             handleRotateScreen();
-//             return true;
-//      }
+      if(mRotateScreen==preference)
+      {
+               handleRotateScreen();
+               return true;
+      }
         //add by James
      
         if (mToggleLargeTextPreference == preference) {
@@ -288,11 +288,11 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
   }
   
   //add by james
-//    private void handleRotateScreen(){
-//      Settings.System.putInt(getContentResolver(),
-//         "rotate_screen",
-//         mRotateScreen.isChecked()? 1:0);
-//    }
+    private void handleRotateScreen(){
+      Settings.System.putInt(getContentResolver(),
+         "rotate_screen",
+         mRotateScreen.isChecked()? 1:0);
+    }
   //add by james
   
   private void handleLockScreenRotationPreferenceClick() {


蓝天-彭 发表于 2016-3-29 16:04:57

本帖最后由 蓝天-彭 于 2016-7-26 10:18 编辑


有些HDMI屏是720x1080 会导致显示半屏,这时内核需修改:
--- a/linux-3.4/drivers/video/sun7i/disp/dev_fb.c
+++ b/linux-3.4/drivers/video/sun7i/disp/dev_fb.c
@@ -1231,8 +1231,8 @@ __s32 Display_Fb_Request(__u32 fb_id, __disp_fb_create_para_t *fb_para)

   if(fb_para->fb_mode == FB_MODE_DUAL_DIFF_SCREEN_SAME_CONTENTS)
   {
-      xres = 1920;
-      yres = 1080;
+      xres = 1280;
+      yres = 720;
   }
   else
   
如果屏是1920x1080的话就不需要更改这个了


Geek 发表于 2016-7-26 10:17:48

本帖最后由 Geek 于 2016-7-26 10:20 编辑

我试过了,如果你的屏是 1920*1080 的话,内核那边不改,也是可以竖屏的:lol

页: [1]
查看完整版本: A20 添加显示横竖屏切换