精华内容
下载资源
问答
  • android 系统关闭系统自动旋转屏幕情况下利用设备感应器(方向传感器)实现横竖屏切称 1.SensorManager详情请查阅http://developer.android.com/reference/android/hardware/SensorManager.html ,这个要比我讲更...

    android 系统关闭系统自动旋转屏幕情况下利用设备感应器(方向传感器)实现横竖屏切换

    1.SensorManager详情请查阅http://developer.android.com/reference/android/hardware/SensorManager.html ,这个要比我讲更有效;

    2.SensorManager sm=(SensorManager)getSystemService(SENSOR_SERVICE); 

    3.在Activity的生命周期方法中注册与移除SensorEventListener;

    在onResume()方法中注册sm.registerListerner(this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_FASTEST);

    其中Ssensor.TYPE_ORIENTATION该常量在3.0后已被Deprecated掉了,当时我还以为在4.0里不建议用了,用其他常量代替结果未能达到效果,然后我就查看sdk中自带的demo中使用的竟然还是这个常量,这样就简单了,剩下的就是在SensorEventListener接口的实现方法中实现自己的操作就可以了;

    4.在onSensorChanged(SensorEvent event) 中实现自己的操作;

    详情请查看:http://developer.android.com/reference/android/hardware/SensorEvent.html

    • alues[0]: Acceleration minus Gx on the x-axis
    • values[1]: Acceleration minus Gy on the y-axis
    • values[2]: Acceleration minus Gz on the z-axis

    根据api文档中的说法在这块我只要values[2]就可实现当屏幕横竖屏时切换屏幕;

    大概意思是绕Z轴正向旋转与逆向旋转两种方式,

    1.正向旋转时只需要判断values[2]>40.0f&&values[2]<70.0f;

    2.逆向旋转时只需要判断values[2]<-40.0f&&values[2]>-70.0f; 

    3.屏幕竖直时也就是正向时判断 :values[2]<10.0f&&values[2]>-10.0f; 

    当然你也可以根据你的实际情况(转屏时灵敏度)调整这个范围;

    在实现中要对event事件加synchronized(this)同步块;

    接下来的工作就是在三种状态下设置让屏幕旋转的方向(横屏,竖屏),其中要注意的是横屏有两种状态,正向横屏与逆向横屏时屏幕的内容要显示正确;

    在这三种 状态下做的操作如下:

    synchronized (this) {
    int orientation = getRequestedOrientation();
    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
    if (40.0f < event.values[2] && event.values[2] < 70.0f) {// 向左
    if (orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
    } else {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    }
    } else if (-10.0f < event.values[2] && event.values[2] < 10.0f) { // 正北
    if (orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
    } else {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
    } else if (-70.0f < event.values[2] && event.values[2] < -40.0f) { // 向右
    if (orientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) {
    } else {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    }
    }
    } else {
    }
    }


    通过上述判断就可实现系统关闭系统屏幕旋转也能够自动横屏,不过在用上述方式实现前先要对manifest进行配置,详细配置见http://blog.csdn.net/sxn1000/article/details/17098351

    转载请注明出处!





    展开全文
  • wince mini2440 旋转屏幕

    2012-07-12 13:01:26
    下面是一段屏幕旋转结果的注册表保存代码,保存成功了,但是下次开机屏幕还是默认不旋转的,怎样才能使下次开机能保存关机前设置的结果啊?请高手指点! //注册表保存:未成功! void RegSaveRotate(DWORD value) ...

    一、

    下面是一段屏幕旋转结果的注册表保存代码,保存成功了,但是下次开机屏幕还是默认不旋转的,怎样才能使下次开机能保存关机前设置的结果啊?请高手指点!

    //注册表保存:未成功!
    void RegSaveRotate(DWORD value)
    {
        DWORD rvalue=0;


        // set tmp value
        switch(value)
        {
            // CE store the short type data low-high upside down
        case DMDO_0:
            rvalue=0;
            break;
        case DMDO_90:
            rvalue=0x5A;  // 5A
            break;
        case DMDO_180:
            rvalue=0xB4;  // B4
            break;
        case DMDO_270:
            rvalue=0x010E; // 010E
            break;
        default:
            rvalue=0;
            break;
        }


        // set value
        HKEY hKEY;
        LPCTSTR data_Set=_T("System\\GDI\\ROTATION"); 
        long ret0=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_ALL_ACCESS, &hKEY);


        if(ret0!=ERROR_SUCCESS)
        {
            DWORD   dwDisposition;   
            ::RegCreateKeyEx(HKEY_LOCAL_MACHINE,_T("System\\GDI\\ROTATION"), 
                0,   NULL,   REG_OPTION_NON_VOLATILE,   KEY_ALL_ACCESS
                , NULL,   &hKEY,   &dwDisposition) ;
        }
        BYTE lm=0;
        long ret1=::RegSetValueEx(hKEY,_T("Angle"),0,REG_DWORD_LITTLE_ENDIAN,(LPBYTE)&rvalue,sizeof(rvalue));
        ret1=::RegSetValueEx(hKEY,_T("LandscapeMode"),0,REG_BINARY,(LPBYTE)&lm,sizeof(lm));
        long ret2=::RegCloseKey(hKEY);

    }


    二、

    呵呵,找到资料了:
    可以看出,旋转角度已经设置了。因此可以肯定是驱动中有什么地方抑制住了。在s3c6410_disp.cpp中找到#ifdef TEMP_FIX_ROTATION_BUG。搜索这个宏定义,看到在某处在这个宏定义下有m_iRotate = 0; 。这个变量被用作m_pPrimarySurface->SetRotation(m_nScreenWidth, m_nScreenHeight, m_iRotate); 而在这个宏定义下,通篇没有改变它的地方。于是在赋值为0的地方,改为

    #ifdef TEMP_FIX_ROTATION_BUG
        //m_iRotate = 0;                                              //deleted
        m_iRotate =GetRotateModeFromReg();   //added
        g_bTempFirstRotation = TRUE;
    #else
        m_iRotate = GetRotateModeFromReg();
    #endif
        SetRotateParams();

    修改后必须 clean sysgen之后重烧NK.bin,OK。

    我的测试也是OK!屏幕旋转保存成功!!!

    可惜还有个小问题:就是开机画面和开机进度条没有旋转!不过也凑合了!


    三、立即呈现旋转

    使用以下代码可以实现:
        memset(&deviceMode, 0, sizeof(deviceMode)); 
        deviceMode.dmSize = sizeof(deviceMode); 
        deviceMode.dmFields = DM_DISPLAYORIENTATION; 
        deviceMode.dmDisplayOrientation = DMDO_90; // DMDO_180,DMDO_270
        ChangeDisplaySettingsEx(NULL, &deviceMode,NULL, CDS_RESET, NULL);



    展开全文
  • 前天学校作业要做个打泡泡的游戏 ...作业要求所有元素会根据屏幕方向自动适配 UI什么的还好,稍微设置一下就搞定了 但是用代码随机出现的泡泡不知道怎么搞 在旋转屏幕后,一半泡泡都跑到屏幕外面去了OTZ
  • 旋转问题--用CDC画圆后再用BitBlt将绘制结果贴到屏幕上  我是动态创建的“STATIC”窗口,然后在这个窗口上绘图,再用BitBlt将绘制结果贴到屏幕上,没有问题。  现在我需要将这这个圆圈旋转起来,请问...
  • 这个不用app inventor的话,一句代码就行了,但是如果用它呢?应该要怎样做?
  • iOS 屏幕旋转控制

    2016-03-22 17:43:00
    今天主要给大家讲一下在iOS开发中怎样控制屏幕旋转。 在iOS6之前的版本中,我们经常用 shouldAutorotateToInterfaceOrientation: 方法来控制一个UIViewController的旋转方向支持,如: - (BOOL)...

    今天主要给大家讲一下在iOS开发中怎样控制屏幕的旋转。

    在iOS6之前的版本中,我们经常用 shouldAutorotateToInterfaceOrientation: 方法来控制一个UIViewController的旋转方向支持,如:

    <span style="font-size:18px;">- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }</span>

    但是在iOS6.0中这个方法被废弃了。

    <span style="font-size:18px;">// Applications should use supportedInterfaceOrientations and/or shouldAutorotate..
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation NS_DEPRECATED_IOS(2_0, 6_0) __TVOS_PROHIBITED;</span>

    新的控制方式是通过两个方法一起来控制的

    <span style="font-size:18px;">// New Autorotation support.
    - (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;
    - (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;
    // Returns interface orientation masks.
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;</span>

    通过实践得出结论,如果window的根视图是一个UINavigationController对象,对屏幕旋转方向的控制方法如下:

    <span style="font-size:18px;">- (BOOL)shouldAutorotate  
    {  
        return self.topViewController.shouldAutorotate;  
    }  
      
    - (NSUInteger)supportedInterfaceOrientations  
    {  
        return self.topViewController.supportedInterfaceOrientations;  
    }  </span>
    然后在添加的UIViewController中添加一下代码控制屏幕的旋转(支持所有版本)

    <span style="font-size:18px;">- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
    {  
        return (interfaceOrientation == UIInterfaceOrientationPortrait);  
    } 
    
    - (BOOL)shouldAutorotate{
        return NO;
    }
    
    - (NSUInteger)supportedInterfaceOrientations{
         return UIInterfaceOrientationMaskPortrait;
    }</span>
    <span style="font-size:18px;">
    </span>
    <span style="font-size:18px;">
    </span>
    <span style="font-size:18px;">开启全部方向支持 </span>
    <span style="font-size:18px;">- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
    {  
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
    }  
      
    -(NSUInteger)supportedInterfaceOrientations  
    {  
        return UIInterfaceOrientationMaskAllButUpsideDown;  
    }  
      
    -(BOOL)shouldAutorotate  
    {  
        return YES;  
    }  </span>



    展开全文
  • 手机拍摄的视频中有些是竖屏的,人物景象是倒立的,传输到电脑上观看,影响观看质量,我们需要旋转成横屏或者其他角度观看,就需要将视频进行旋转,顺时针,逆时针旋转,全角度旋转,使用“QVE视频转换器”视频旋转...

    手机拍摄的视频中有些是竖屏的,人物景象是倒立的,传输到电脑上观看,影响观看质量,我们需要旋转成横屏或者其他角度观看,就需要将视频进行旋转,顺时针,逆时针旋转,全角度旋转,使用“QVE视频转换器”视频旋转功能就能实现全角度旋转,下面介绍下具体操作方法.

    准备工具:电脑

    支持操作系统:win7/win8/win10

    QVE视频转换器下载地址:

    屏幕录像软件下载-高清视频录制工具下载-汇佳互联官网www.qvevideo.com
    de328418a81f9d18b32b533ebcb3c414.png

    视频旋转步骤如下:

    1.第一步,打开软件主界面选择,视频旋转功能菜单,点击添加文件按钮,在弹出的对话框中选择需要旋转的视频文件,添加成功后列表会显示文件的大小和时长。

    9244540c68365edc9eb4ef5b0281a7f3.png

    2.第二步,点击旋转下拉列表,在显示的旋转角度中选择合适角度,点击转换,等待转换进度到百分百后,再点击三个点的图标选择打开目录,旋转后的文件就在打开的目录下.

    b8acec64505752aa9ea5106e2d803a0e.png
    展开全文
  • Android开发--教你巧妙应对屏幕旋转

    千次阅读 2015-03-11 15:42:41
    Android手机支持屏幕旋转功能,手机屏幕旋转直接引发了我们的App视图变化,我们选择怎样去处理手机的翻转以及当我们的手机屏幕发生了旋转的时候我们选择何种策略去进行处理视图直接影响了我们的App的用户体验。...
  • android整合--屏幕旋转触发事件

    千次阅读 2013-09-17 21:15:18
    已经知道怎样设置屏幕显示方向,下面看一下屏幕旋转时触发事件。 先看main.xml android:layout_width="fill_parent" android:layout_
  • 1.1概述 Android4.0,Androd4.4源代码能够编译成手机模式和平板模式,讯为iTop4412开发平台 的Android系统默认编译为平板模式。客户须要依据自己的产品设计及应用环境,切换屏幕 ...那么怎样设置屏幕...
  • 视图旋转 AVPlayer视频播放视图旋转

    千次阅读 2015-09-11 00:25:18
    如果控制中心关闭旋转屏幕,旋转屏幕不再能用,但进入和退出全屏按钮都是能用的 在这期间,状态条也是要改变方向的,而且是一直显示的,现在专业做视频的APP都是这样的,下面是怎样实现的屏幕旋转的这一块: 1. 方案1 :...
  • 通过屏幕呈现任意角度的R图片,让被试判断该图片的R是正向的还是反向的,计算被试判断所用的时间。实验结果显示,大多数被试要在头脑中想像地将两个物体调转到同一方向才能进行比较;而且意象在头脑中旋转的角度越大...
  • [转]Ogre场景旋转

    千次阅读 2010-12-06 11:18:00
    可是,怎样旋转才能达到预期效果呢?以前想得挺复杂的,首先把屏幕中的点转换到视空间中,然后把视空间的点转换到世界坐标系中。等等。后来想想不对啊,向量在那个空间中都一样的(当然排除已经投影到视口的二维空间...
  • 用BitBlt旋转图片2

    千次阅读 2009-04-15 15:53:00
    这是因为屏幕坐标是整数,而旋转公式的结果却是浮点数,在转换中,出现误差。怎样解决呢?用数学公式来纠正误差?不需要。原来的绘制是这样的:BitBlt(hdc,destx+200,desty+200,1,1,hdcmem,i,j,SRCCOPY)
  • 本文目的是为了确定在移动端怎样通过单指滑动实现物体的旋转,双指实现平移和缩放。 前提知识: ARFoundation - touch point坐标点测试 旋转 手机的位置确定了相机的位置,那么首先确定下相机的updirection和...
  • 因为屏幕中的内容会根据重力调整方向,所以无论怎样,你都不会觉得自己拿反了。但是,进入横屏模式的中间状态,有没有正确的方向一说呢,下面两个图哪个才是正确的方向呢?2.进入横屏的方式iOS和An...
  • 本篇文章和上篇文章相似都是做物体的运动,难点在于怎样找到物体旋转所要绕的是哪个方向上的轴。 比如鼠标横着划过,那么物体应该绕的是竖直方向上的轴;如果鼠标从左上划向右下,那么物体绕的就应该是从右上到左下...
  • 1、首先要准备好要实例化的要展示的游戏物体,怎样将要展示的物体显示在UGUI前,可以看之前的文章。 2、新建控制物体在屏幕上移动的脚本SpinWithMouse.cs 下面附上代码: using System.Collections; using System...
  • 这个教程的目的就是让你们熟悉在cocos2d里面如何使用box2d,所采用的例子就是制作一个简单的应用,里面有一个篮球,你可以通过旋转你的iPhone来改变重力的方向,同时篮球碰到屏幕边界可以反弹。 这个教程是基于 ...
  • 屏幕上单击鼠标右键,通过“旋转视图”(图中红色箭头所指)、“翻滚视图”(图中蓝色箭头所指)等命令,将视图调整至我们需要的方向 也可以通过“Alt+→”、“Alt+←”、“Shift+↑”、“Shift+↓”等快捷键来...
  • 但是,当我们决定怎样屏幕上绘图时,必须使用三维坐标的方式考虑。 为了把一个物体的三维坐标变成屏幕上的像素坐标,需要完成以下三个步骤: 变换包括模型、视图和投影操作,这是通过矩阵乘法表示的。这些...
  • * 设置控件为正方形 View在屏幕上显示出来要先经过measure(计算)和layout(布局). */ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)//调用onMeasure方法 然后传入两个...
  • 简介这是一篇没有什么实际作用的文章,因为没有任何shader...今天,本人打算研究一下基本的光栅化渲染的实现,看一下怎样把一个模型从一些顶点数据,变成最终显示在屏幕上的图像,也就是所谓的渲染流水线。实现过...
  • 一、初试屏幕竖屏 ...直到有一天我误打误撞摁了旋转屏幕显示的快捷键:ctrl+alt+右,屏幕一下子就旋转了270度,显示器竟然可以竖着显示,再试试其它方向,竟然都可以很轻松地把屏幕旋转90,180,2
  • P110 答通过元件多层的嵌套结构 用户可以基于一种模式变化出各式各样的元件来这就是嵌套的优势 2怎样调整对象旋转的方向 答用任意变形工具 实训报告 实训名称制作补间动画 实训目的掌握制作补间动画中素材分解嵌套...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

怎样旋转屏幕