zoukankan      html  css  js  c++  java
  • Recovery和Charger模式下屏幕旋转180度

    转自:http://www.etwiki.cn/android/1267.html

    如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度

    解决方法:

    1.在bootable ecoveryminuiGraphics.c 文件找到gr_flip(void)方法

    memcpy(gr_framebuffer[gr_active_fb].data,gr_mem_surface.data, fi.line_length*vi.yres);

    修改为

    rotate_180(gr_framebuffer[gr_active_fb].data,gr_mem_surface.data, fi.line_length*vi.yres);

    2.添加方法

    void *rotate_180(void *_dst,const void *_src,int len)
    {
      int pixelSize = PIXEL_SIZE,size,step = len/pixelSize;//像素个数
      unsigned char *dst = _dst;
      const unsigned char *src = _src + len;
      while(step-- > 0){
        size = pixelSize;
        src -=size;
        while(size-- > 0){
          *dst++ = *src++;
        }
      src -=pixelSize;
      }
      return _dst;
    }
    

      

    rotate_180方法的作用就是把buffer中的数据按像素倒转过来

    例如:原始数据

    {(1,2,3),(4,5,6),(7,8,9),

    (a,b,c),(d,e,f),(g,h,i),

    (A,B,C),(D,E,F),(G,H,I)

    }

    180度旋转后数据

    {(G,H,I),(D,E,F),(A,B,C),

    (g,h,i),(d,e,f),(a,b,c),

    (7,8,9),(4,5,6),(1,2,3)

    }

    每个像素的数据不变,以像素为单位旋转顺序

    这样就完成了旋转

  • 相关阅读:
    jdk9 特性
    jdk8 特性
    Eclipse中Spring插件的安装
    C++避免程序运行完后窗口一闪而过的方法
    完全二叉树节点个数
    Shell 编写倒着的*三角形
    Drools源于规则引擎
    Spring Data MongoDB 三:基本文档查询(Query、BasicQuery
    docker环境搭建
    MyBatis根据数组、集合查询
  • 原文地址:https://www.cnblogs.com/dirt2/p/5910386.html
Copyright © 2011-2022 走看看