CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 5525|回复: 2

A20 添加显示横竖屏切换

[复制链接]
发表于 2016-3-25 09:46:18 | 显示全部楼层 |阅读模式
在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的话就不需要更改这个了


回复 支持 反对

使用道具 举报

发表于 2016-7-26 10:17:48 | 显示全部楼层
本帖最后由 Geek 于 2016-7-26 10:20 编辑

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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-4-28 15:17 , Processed in 0.025005 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部