当前位置: 首页 > news >正文

安卓开发实例:方向传感器

调用手机的方向传感器,X轴,Y轴,Z轴的数值
在这里插入图片描述

activity_sensor.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"tools:context="com.weijun901.randomNum.Second"><LinearLayoutandroid:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center" tools:ignore="MissingConstraints"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#F8BBD0"android:gravity="center"><TextViewandroid:text="倾斜角(X轴):"android:textSize="30sp"android:layout_width="wrap_content"android:layout_height="wrap_content" android:id="@+id/tvX" tools:ignore="HardcodedText"/><TextViewandroid:text="TextView"android:layout_width="wrap_content"android:layout_height="wrap_content" android:id="@+id/tv1" android:layout_weight="1"tools:ignore="HardcodedText,InefficientWeight"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#B2DFDB"><TextViewandroid:text="滚动角(Y轴):"android:textSize="30dp"android:layout_width="wrap_content"android:layout_height="wrap_content" android:id="@+id/tvY" tools:ignore="HardcodedText,SpUsage"/><TextViewandroid:text="TextView"android:layout_width="wrap_content"android:layout_height="wrap_content" android:id="@+id/tv2" android:layout_weight="1"tools:ignore="HardcodedText,InefficientWeight"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#B3E5FC"><TextViewandroid:text="方位角(Z轴):"android:textSize="30dp"android:layout_width="wrap_content"android:layout_height="wrap_content" android:id="@+id/tvZ" tools:ignore="HardcodedText,SpUsage"/><TextViewandroid:text="TextView"android:layout_width="wrap_content"android:layout_height="wrap_content" android:id="@+id/tv3" android:layout_weight="1"tools:ignore="HardcodedText,InefficientWeight"/></LinearLayout><Buttonandroid:text="Main"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="toMainActivity"android:id="@+id/button" tools:ignore="HardcodedText"/></LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Sensor.java

package com.weijun901.show;import android.content.Intent;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;public class Sensor extends AppCompatActivity implements SensorEventListener {private TextView tv1;private TextView tv2;private TextView tv3;private SensorManager sManager;private android.hardware.Sensor mSensorOrientation;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sensor);// 设置标题栏的文字getSupportActionBar().setTitle("方向传感器");sManager = (SensorManager) getSystemService(SENSOR_SERVICE);mSensorOrientation = sManager.getDefaultSensor(android.hardware.Sensor.TYPE_ORIENTATION);sManager.registerListener(this, mSensorOrientation, SensorManager.SENSOR_DELAY_UI);bindViews();}private void bindViews() {tv1 = findViewById(R.id.tv1);tv2 = findViewById(R.id.tv2);tv3 = findViewById(R.id.tv3);}@Overridepublic void onSensorChanged(SensorEvent event) {tv1.setText((float) (Math.round(event.values[1] * 100)) / 100 + "°");tv2.setText((float) (Math.round(event.values[2] * 100)) / 100 + "°");tv3.setText((float) (Math.round(event.values[0] * 100)) / 100 + "°");}public void toMainActivity(View view) {Intent intent = new Intent(this, MainActivity.class); // 替换为目标页面的类名startActivity(intent);}@Overridepublic void onAccuracyChanged(android.hardware.Sensor sensor, int accuracy) {}@Overrideprotected void onDestroy() {super.onDestroy();sManager.unregisterListener(this);}
}
http://www.lryc.cn/news/209129.html

相关文章:

  • [论文笔记]GTE
  • Prometheus字段解析
  • msigdbr hallmarks gsea broad研究所
  • 理解V3中的proxy和reflect
  • 实现寄生组合继承
  • ARM 账号注册报错 The claims exchange ‘Salesforce-UserWriteUsingEmail‘
  • 笔记:电子设备接地,接的到底是什么地?
  • PY32F002A系列单片机:高性价比、低功耗,满足多样化应用需求
  • 头歌的数据库的第三次作业的答案
  • 前端3D规划
  • appium操控微信小程序的坑
  • 6 个最佳 Windows 免费磁盘分区管理器
  • 【Leetcode】【每日一题】【简单】2558. 从数量最多的堆取走礼物
  • LeetCode 每日一题 2023/10/23-2023/10/29
  • Android:Installed Build Tools revision 33.0.2 is corrupted.
  • 语法复习之C语言与指针
  • vue笔记(二)
  • 【IT行业就业前景广阔:探讨热门方向与就业机会】
  • linux上java -jar方式运行项目及输出文件nohup.out的清理, linux上定时器的用法
  • macOS 12 Monterey v12.7.1正式版:开启全新的操作系统体验
  • vue制作防止用户未登录或未填写信息就跳转页面的路由拦截器
  • postgis ST_CoverageInvalidEdges用法
  • sqlalchemy的部分函数合集
  • mac苹果电脑使用日常
  • 多线程面试相关知识点
  • 关于生成式人工智能模型应用的调研
  • 【问题】在安装torchvision的时候,会自动安装torch?
  • MySQL数据库备份实战
  • 每日一题 2558. 从数量最多的堆取走礼物(简单,heapq)
  • JavaScript中的Promise