【问题标题】:Device Orientation in Windows Phone 8Windows Phone 8 中的设备方向
【发布时间】:2012-12-06 09:22:24
【问题描述】:

我想在使用 PhotoCaptureDevice 选项拍摄快照时根据 Windows Phone 8 中的设备方向旋转图像。

当设备方向为

LandscapeLeft  - Image to be rotated to -90
LandscapeRight - Image to be rotated to 90

但是在 Windows Phone 8 中没有找到设备方向的选项。你能请任何人帮助我吗?

【问题讨论】:

  • 嗨大卫,你能解释一下你是如何解决这个问题的。主要是你如何识别Landscape、LandscapeLeft、LandscapeRight、Portrait、PortraitDown、PortraitUp等方向。
  • 您可以使用第一个帮助我解决问题的答案..
  • 这不是我的问题,你是如何处理平面方向的,例如设备位于一个具有纵向和横向方向的桌子上
  • 您可以通过 nicedavid60@gmail.com 与我联系,以通过我的 facebook 个人资料 facebook.com/davidc1987 获取更多信息

标签: c# xaml camera windows-phone-8


【解决方案1】:

您可以使用加速度传感器读数,然后按如下方式获取 atan2:

angle = Math.Atan2(-x,y) * 180.0 / Math.PI;

其中“角度”是相对于默认纵向的设备方向。

【讨论】:

  • 只是为了充实上面的内容以节省其他人的麻烦,您需要: var accel = new Microsoft.Devices.Sensors.Accelerometer; var curr = accel.CurrentValue.Acceleration; var x = curr.X; var y = curr.Y; PS感谢OP
【解决方案2】:

您需要重写PhoneApplicationPage.OnOrientationChanged 方法以获取有关方向何时更改的通知。您需要确保您的页面首先支持您需要的各种方向。

然后您可以根据此更改图像方向。

【讨论】:

  • 我不想根据页面方向工作。我需要根据 PhotoCaptureDevice 的方向工作..
  • 嗯 - 这些是相同的(除了你无法检测到你是否处于纵向和倒置状态)。您是在页面中显示您的图像,对吗?
  • 是的,我显示图像。我需要根据设备的方向旋转图像。
  • 否则您可以在拍摄照片后使用相机中的 EXIF 数据 - 例如,您看到 softwareisinthedetails.com/2012/11/… 了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多