如何在android中检测纵向模式中的方向变化?

时间:2014-03-06 13:39:35

标签: android android-orientation device-orientation

我需要在我的应用中显示相机预览,以便按下按钮即可拍摄照片。 所以我提出了一个很好的标准"相机预览课。问题是我必须将其置于横向模式,以便预览可以在整个屏幕上拉伸。如果处于纵向模式,它将仅保留在屏幕中心的一小部分上。如果这可以更容易解决,我愿意接受建议。

但我的问题是。如果锁定在横向模式,我如何检测屏幕旋转,以便我可以相应地旋转按钮的文本? 我试过了

@Override
public void onSensorChanged(SensorEvent event)
{
    Log.d("onSensorChanged");
    Log.d("event:" + event);

}

但我没有结果。

3 个答案:

答案 0 :(得分:1)

使用OrientationEventListener

orientationListener = new OrientationEventListener(context, SensorManager.SENSOR_DELAY_UI) {
    public void onOrientationChanged(int orientation) {
        //do something
    }
};

答案 1 :(得分:0)

首先,您应该知道屏幕模式发生变化时会发生什么。

当屏幕模式改变其视图再次创建时,意味着我们可以检测到什么屏幕模式,我们可以更改布局文件或在onCreate()中执行其他操作。

如何检测哪种屏幕模式。

if(getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) {
    //do something
}

配置类具有不同的方向常量在开发人员站点上进行检查。

答案 2 :(得分:0)

使用这种简单的方法...

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
     // your code
}

OR

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
    // your code
}