Appcelerator Titanium app,专门询问Android
我们的应用已锁定为纵向模式:
android:screenOrientation="nosensor"
位于tiapp.xml orientationModes: [Ti.UI.Portrait]
设置然而,当我们显示相机(带有覆盖层)时,它可以旋转。这意味着用户照片可能会侧身或颠倒。不幸的是,由于应用已锁定为纵向模式,Ti.Gesture.orientation
和myWindow.orientation
始终返回1(纵向),因此我们无法手动对图像进行反转。
我怎样才能a)锁定相机的方向,或b)找到实际的设备方向,以便我可以手动反转图像?
答案 0 :(得分:0)
答案是使用加速度计。
function accelerometerCallback(e) {
var deviceOrientation;
// Get the current device angle
var xx = -e.x;
var yy = e.y;
var angle = Math.atan2(yy, xx);
if (angle >= -2.25 && angle <= -0.75) {
deviceOrientation = "portraitUpsideDown";
} else if (angle >= -0.75 && angle <= 0.75) {
deviceOrientation = "landscapeRight";
} else if (angle >= 0.75 && angle <= 2.25) {
deviceOrientation = "portrait";
} else if (angle <= -2.25 || angle >= 2.25) {
deviceOrientation = "landscapeLeft";
}
console.log('ACCELEROMETER: orientation = ' + deviceOrientation);
}
Ti.Accelerometer.addEventListener('update', accelerometerCallback);
myWin.addEventListener('close', function () {
Ti.Accelerometer.removeEventListener('update', accelerometerCallback);
});
请记住,加速计听众每秒钟会发射数百次,这是电池的另一种消耗。请务必尽快删除update
侦听器。