android 相机判断水平
目录
(图片来源网络,侵删)
添加权限:
android 相机判断水平java代码
添加权限:
android 相机判断水平java代码
import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity implements SensorEventListener { private SensorManager sensorManager; private Sensor accelerometer; private Sensor gyroscope; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); gyroscope = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL); sensorManager.registerListener(this, gyroscope, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onResume() { super.onResume(); sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL); sensorManager.registerListener(this, gyroscope, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); sensorManager.unregisterListener(this); } @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { float[] gravity = event.values; float x = gravity[0]; float y = gravity[1]; float z = gravity[2]; double angle = Math.toDegrees(Math.acos(z / Math.sqrt(x * x + y * y + z * z))); // 判断设备是否水平 if (angle
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。