Android处理方向更改,如果屏幕已锁定

时间:2017-12-14 08:45:12

标签: android xamarin.android

我有一个相机活动,我不会锁定此视图的方向。我这样做了:

[Activity(Label = "Camera Android", MainLauncher = false, NoHistory = false, Theme = "@style/MyThema",
        ScreenOrientation = ScreenOrientation.Portrait,
        ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize)]
    public class FullScreenView : MvxActivity<CameraViewModel>
    {
    ..
    }

现在我有两个问题:
 1 - 如果方向已更改,我想在此视图中旋转图标  2 - 所有照片仅以人像模式保存。

如果我为活动写作

,则不会调用此方法
  

ScreenOrientation = ScreenOrientation.Portrait,

public override void OnConfigurationChanged(Configuration newConfig)
{
   base.OnConfigurationChanged(newConfig);
}
  

OrientationEventListener

也不会工作。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

我使用设备加速度计解决了这个问题。 在项目中,我使用Mvvmcross,我安装了MvvmCross Accelerometer插件。

public interface IMvxAccelerometer
{
    void Start();
    void Stop();
    bool Started {
        get;
    }
    MvxAccelerometerReading LastReading {
        get;
    }
    event EventHandler<MvxValueEventArgs<MvxAccelerometerReading>> ReadingAvailable;
}

比在代码中我读取设备的X和Y位置并更改图标和存储照片的方向。