LCD横竖屏显示

news/2024/11/19 20:21:02/

1)kernel 竖屏
选中:
make menuconfig ---> Device Drivers  ---> Graphics support  ---> Console display driver support  ---> Framebuffer Console Rotation


make menuconfig

                ---> Boot options  启动参数修改为:console=ttySAC2,115200 init=/linuxrc fbcon=rotate:1


      说明: fbcon=rotate:<n>

        This option changes the orientation angle of the console display. The
        value 'n' accepts the following:

          0 - normal orientation (0 degree)
          1 - clockwise orientation (90 degrees)
          2 - upside down orientation (180 degrees)
          3 - counterclockwise orientation (270 degrees)



2)Android OS 竖屏

文件:./native/services/surfaceflinger/SurfaceFlinger.cpp

status_t SurfaceFlinger::getDisplayInfo(const sp<IBinder>& display, DisplayInfo* info) {
    ...
 738
//    int displayOrientation = DisplayState::eOrientationDefault;
    int displayOrientation = isplayState::eOrientation90;          // 加上这行
 740     char property[PROPERTY_VALUE_MAX];
 741     if (type == DisplayDevice::DISPLAY_PRIMARY) {
 742         if (property_get("ro.sf.hwrotation", property, NULL) > 0) {
 743             switch (atoi(property)) {
 744                 case 90:
 745                     displayOrientation = DisplayState::eOrientation90;
 746                     break;
 747                 case 270:
 748                     displayOrientation = DisplayState::eOrientation270;
 749                     break;
 750             }
 751         }
 752     }
 753
 754     if (displayOrientation & DisplayState::eOrientationSwapMask) {
 755         swap(width, height);
 756     }
 757
 758     info->w = width;
 759     info->h = height;
 760     info->xdpi = xdpi;
 761     info->ydpi = ydpi;
 762     info->fps = float(1e9 / hwc.getRefreshPeriod(type));
 763
 764     // All non-virtual displays are currently considered secure.
 765     info->secure = true;
 766
 767     return NO_ERROR;
 768 }
a:     device 中init.rc修改 竖屏
zhz@zhz:~/imx6-android-4.4.3/android/device/fsl/sabresd_6dq$ vim init.rc
    #Define the config for dual camera
    setprop camera.disable_zsl_mode 1
    #For landscape mode, orient is 0
    #For portrait mode, orient is 90
    #the android before honycomb are all in portrait mode
    setprop back_camera_name ov5640_mipi
    setprop back_camera_orient 0
    setprop front_camera_name uvc,ov5642_camera,ov5640_camera
    setprop front_camera_orient 0

    # Set OpenGLES version
    setprop ro.opengles.version 196608

    # Set rotation to 270 to cofigure as portrait mode
    setprop ro.sf.hwrotation 0            #指定默认输出不旋转(我们默认输出时竖屏)
    #setprop ro.sf.hwrotation 270   指定旋转270度输出

    # Set the density to 160dpi, default 128dpi is not good
    setprop ro.sf.lcd_density 160


b: . 这个指定角度,Android默认只有0度和270度有效,180度无效,如果想使用180度,需要修改源码
修改文件frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
if (type == DisplayDevice::DISPLAY_PRIMARY) {
    if (property_get("ro.sf.hwrotation", property, NULL) > 0) {
        switch (atoi(property)) {
            case 90:
                displayOrientation = DisplayState::eOrientation90;
                break;
            case 270:
                displayOrientation = DisplayState::eOrientation270;
                break;
         case 180:
                displayOrientation = DisplayState::eOrientation180;
                break;
        }
    }
}
这样子就支持了180度了在方法

3. 还有更详细的 - Android 4.1 默认窗体旋转180度  
1).设置属性值
在/out/target/product/sabresd_6dq/system/build.prop文件中加入
ro.sf.hwrotation=180
2).设置窗体默认显示方向
在frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp文件中找到方法
getDisplayInfo
switch (atoi(property)) 加入
 case 180:
                displayOrientation = DisplayState::eOrientation180;
                break;


3).设置窗体动画旋转方向
     a > 在frameworks/base/core/java/android/view/Surface.java 加入方法
public static int getDefaultRotation(){  
                return android.os.SystemProperties.getInt("ro.sf.hwrotation", 0);//180  
            }  
 
 
            /**
            * @hide
            */    
            public static int getDefaultRotationIndex(){  
                int rotation = getDefaultRotation();  
        switch(rotation){  
        case 0:  
            return ROTATION_0;  
        case 90:  
            return ROTATION_90;  
        case 180:  
            return ROTATION_180;  
        case 270:  
            return ROTATION_270;  
        }  
        return ROTATION_0;  
    }  
b > 在frameworks/base/services/java/com/android/server/vm/ScreenRotationAnimation.java 文件中找到(android4.1) 方法setRotation
或(android4.2)方法setRotationInTransaction 修改 deltaRotation(rotation,Surface.ROTATION_0);
为deltaRotation(rotation,Surface. getDefaultRotationIndex());




http://www.ppmy.cn/news/661694.html

相关文章

点阵屏

我们现在走在马路上&#xff0c;经常看到马路两侧有一些LED点阵广告牌&#xff0c;这些广告牌看起来绚烂夺目&#xff0c;非常吸引人&#xff0c;而且还会变化很多种不同的显示方式。本章我们就会学习到点阵LED的控制方式&#xff0c;按照惯例&#xff0c;先普及部分C语言知识。…

ALV、选择屏幕

目录 ALV 内容&#xff1a; Fanction开发流程&#xff1a; &#xff08;1&#xff09;声明变量 &#xff08;2&#xff09;定义内表 &#xff08;3&#xff09;读取数据 &#xff08;4&#xff09;ALV格式控制 &#xff08;5&#xff09;定义事件 &#xff08;6&#…

前端控制屏幕双屏显示 pos副屏 副屏方案

之前在做到一个需求 电脑接了多个显示器 要在主屏上显示web界面 第二个屏幕上通过主屏来调起第二个界面 之前在网上看到的方案 &#xff1a;通过window.open(url, name, fulls)来打开浏览器 计算位置来放打开的界面 但是这个有兼容性 好像只在火狐生效 。 还有通过ActiveXO…

COMTRADE格式录波数据分析以及函数实现(一)

一、首先&#xff0c;看一下COMTARDE是什么 COMTRADE是IEEE标准电力系统暂态数据交换通用格式。标准为电力系统或电力系统模型采集到的暂态波形和事故数据的文件定义了一种格式。该格式意欲提供一种易于说明的数据交换通用格式。IEEE于1991年提出&#xff0c;并于1999进行了修…

数字化时代必备的培训系统软件解析

随着数字化时代的到来&#xff0c;企业面临着越来越多的挑战和机遇。在这个时代&#xff0c;企业需要不断地提高员工的技能和知识水平&#xff0c;以适应市场的变化和发展。因此&#xff0c;数字化培训系统软件成为了企业必备的工具之一。本文将探讨数字化时代对企业的影响&…

el-date-picker禁用指定日期之前或之后的日期

一、elementUI中el-date-picker禁用指定日期之前或之后的日期 通过配置picker-options配置指定禁用日期&#xff08;pickerOptions写到data里面&#xff09; <el-date-pickerv-model"date"type"date"size"small"value-format"yyyy-MM-d…

联发科6758_酷派cool10官宣6月11日新品上市 搭载联发科MT6758处理器

IT资讯6月9日消息 近段时间许许多多的设备厂商开始有所行动&#xff0c;不管是推出新设备、申请新专利还是研发新技术都希望能为自家的设备在市场多获得多一些市场份额&#xff0c;今日酷派官宣将于6月11日迎来其今年在国内上市的第一款手机酷派cool10 &#xff0c;消息一出&am…

MTK6762 Helio P22 安卓核心板模块应用

MT6762/ P22 具有集成的蓝牙、fm、wlan 和 gps 模块&#xff0c;是一个高度集成的基带平台&#xff0c;包括调制解调器和应用处理子系统&#xff0c;以支持 LTE/LTE-A 和 C2K 智能手机应用程序。该安卓核心板集成了 ARM Cortex-A53&#xff0c;工作频率可达 2.0GHz&#xff0c;…