检测使用的Andr​​oid设备方向的变化

检测使用的Andr​​oid设备方向的变化

本文介绍了检测使用的Andr​​oid设备方向的变化:screenOrientation的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种方法来检测设备方向事件或至少
同时采用获得当前设备方向
机器人:screenOrientation在清单?
我的意思是设备方向不应用方向。

Is there a way to detect device orientation events or at least toget the current device orientation while usingandroid:screenOrientation in the manifest ?I mean device orientation not application orientation.

我的问题是我的真的想保持我的波泰特模式的应用程序
(这是一个web视图),但我想处理方向改变自己在我的
应用程序。当机器人:screenOrientation是设置好的,方向由getted
方法是总是应用取向,而不是设备
方向。

My problem is I really want to keep my application in portait mode(it's a web view) but I want to handle orientation change myself in myapp. When android:screenOrientation is setted, orientation getted bymethods is always the application orientation, not the deviceorientation.

问候,
加埃唐

Regards,Gaëtan

推荐答案

如果你想自己处理设备旋转,然后用下面的方法:

If you want to handle device rotation yourself, then use the following method:

@Override
public void onConfigurationChanged(Configuration config)
{
    super.onConfigurationChanged(config);
    Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

    if(display.getRotation() == Surface.ROTATION_90)
    {
        mFlash.startAnimation(mRotate);
    }
    if(display.getRotation() == Surface.ROTATION_90)
    {
        parameters.setPreviewSize(width, height);
    }

    if(display.getRotation() == Surface.ROTATION_180)
    {
        parameters.setPreviewSize(height, width);
    }

    if(display.getRotation() == Surface.ROTATION_270)
    {
        parameters.setPreviewSize(width, height);
        mCamera.setDisplayOrientation(180);
    }

}

里面的if语句仅仅是可以做例子的行动。显然,处理任何你需要在那里。

The actions inside the if statements are just examples of what might be done. Obviously, handle whatever you need to there.

这篇关于检测使用的Andr​​oid设备方向的变化:screenOrientation的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 06:37