我知道我必须使用 OrientationListener 类来获取设备的角度。我想得到 -90° 和 90° 之间的角度。我不知道该怎么做。左图:90度,中图:0度,右图:-90度

代码
class OrientationListener implements SensorEventListener
{
@Override
public void onSensorChanged(SensorEvent event)
{
angle = Math.round(event.values[2]);
if (angle < 0)
{
angle = angle * -1;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用此代码来实现简单的 0、90、180 度。
Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
Run Code Online (Sandbox Code Playgroud)
int 旋转 = display.getRotation();
Surface.ROTATION_0 为 0 度,Surface,ROTATION_90 为 90 度等。
如果您想要 0、90 等以外的度数,您还可以使用 SensorEventListener 接口:
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
float rawX = event.values[0];
}
}
Run Code Online (Sandbox Code Playgroud)
您需要使用此代码来获取学位:
double k = 90/9.8;
double degrees = rawX * k; // this is a rough estimate of degrees, converted from gravity
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3169 次 |
| 最近记录: |