- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 TYPE_ACCELEROMETER 传感器获取手机角度。我的目标是仅在手机倾斜后获取角度值。它有效,但问题是当我 Handlebars 机正面朝上放在 table 上时,它仍然说 isLandscape = true;
private boolean isLandscape;
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(
Sensor.TYPE_ACCELEROMETER),1000000);
private final SensorEventListener mSensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent mSensorEvent) {
float X_Axis = mSensorEvent.values[0];
float Y_Axis = mSensorEvent.values[1];
double angle = Math.atan2(X_Axis, Y_Axis)/(Math.PI/180);
if(!isLandscape) {
if(angle > 80) {
Orientation = 90;
isLandscape = true;
}
}
else
{
if(Math.abs(angle) < 10) {
Orientation = 0; //portrait
isLandscape = false;
}
}
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
仅在手机倾斜后获取手机角度的最佳方法是什么?我很抱歉英语不好,
谢谢。
最佳答案
我不知道我是否理解你的问题,但我认为你希望你的应用程序仅在手机纵向时计算倾斜角度,首先你需要获取 mSensorEvent.values[ 的值0]
并且在这种情况下,如果处于站立状态的手机将返回 0
,向右倾斜将是从 1 到 9 的负值,向左倾斜将是正值。
然后您必须执行所有这些操作,以防 mSensorEvent.values[1]
值例如在 9 和 7 之间(9 是完美的标准)。以确保设备处于纵向位置。
如果您需要角度值,您可以将 mSensorEvent.values
的浮点值乘以 10。
希望对你有帮助
更新***
你可以试试这个:
private boolean isLandscape;
@Override
public void onSensorChanged(SensorEvent mSensorEvent) {
float X_Axis = mSensorEvent.values[0];
float Y_Axis = mSensorEvent.values[1];
if((X_Axis <= 6 && X_Axis >= -6) && Y_Axis > 5){
isLandscape = false;
}
else if(X_Axis >= 6 || X_Axis <= -6){
isLandscape = true;
}
}
关于android - 如何使用传感器获取手机的角度/度数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31361328/
我想知道当动画结束或被中断时如何在旋转动画中获取当前角度/度数? 我的想法是当点击某个按钮时动画被打断时,旋转将逆时针方向(当前流向是顺时针方向),从被打断时的最后一个角度/度开始。 我试过使用 ap
我正在尝试使用 TYPE_ACCELEROMETER 传感器获取手机角度。我的目标是仅在手机倾斜后获取角度值。它有效,但问题是当我 Handlebars 机正面朝上放在 table 上时,它仍然说 i
以下代码显示为问号而不是度数符号: var airF = Math.round(Number(MDTMOBILE.RWISWeather[i].AirTemp)) + "\u00B0" + "F";
我使用 css 3D-transform rotateY 翻转带有 css transition 的 div。我希望图像翻转一定次数:当转换结束时,我再次触发它直到达到某个计数器值。 我想做什么:当
我正在开发一个 map 应用程序的插件,它有很多类,有大量的单位选项。我觉得我在维护模型内的顺序方面有很好的处理能力。例如,Angle 类具有 Degrees 和 Radians 的属性并自动相互更新
我有一个栅格,是从 netcdf 中获得的(Lambert Conic Conformal projection): library(meteoForecast) wrf_tempor
我在 mapView 的叠加层上有一组项目。 我知道大多数对象的顶部/底部/左侧/右侧位置。 我想使用 zoomToSpan() 方法来放大该区域。 用这种方法计算纬度/经度的正确方法是什么? 最佳答
给你一个具有 100 万个顶点的最大度数为 4 的简单图。 我们想找到一个最大独立子集。 一般情况下是NP难的。 度数最大为 4 的事实是否提供了计算它的有效解决方案? 最佳答案 进一步阅读维基百科页
我是一名优秀的程序员,十分优秀!