博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
传感器简介
阅读量:6443 次
发布时间:2019-06-23

本文共 2231 字,大约阅读时间需要 7 分钟。

 

 

public class MainActivity extends Activity {

 private SensorManager sensorManager;

 private MyListener listener;

 private ImageView iv;

 private TextView tv;

 

 @SuppressWarnings("deprecation")

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  this.iv = (ImageView) this.findViewById(R.id.iv);

  this.tv = (TextView) this.findViewById(R.id.tv);

 

  this.sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  // 获取方向传感器

  Sensor sensor = this.sensorManager

    .getDefaultSensor(Sensor.TYPE_ORIENTATION);

  this.listener = new MyListener();

  this.sensorManager.registerListener(listener, sensor,

    SensorManager.SENSOR_DELAY_UI);

 }

 

 @Override

 protected void onDestroy() {

  this.sensorManager.unregisterListener(listener);

  super.onDestroy();

 }

 

 private class MyListener implements SensorEventListener {

  private float startAngle = 0f;

 

  @Override

  public void onAccuracyChanged(Sensor sensor, int accuracy) {

 

  }

 

  @Override

  public void onSensorChanged(SensorEvent event) {

   // values[0]: Azimuth, angle between the magnetic north direction

   // and the y-axis, around the z-axis (0 to 359). 0=North, 90=East,

   // 180=South, 270=West

   float angle = event.values [0];

   if(angle == 359 || angle == 0) {

    angle =0;

    startAngle = 0;

   }

   tv.setText("startAngle = "+ startAngle +", angle" +String.valueOf(angle));

   RotateAnimation animation = new RotateAnimation(startAngle, -angle,

     Animation.RELATIVE_TO_SELF, 0.5f,

     Animation.RELATIVE_TO_SELF, 0.5f);

   animation.setDuration(130);

   iv.startAnimation(animation);

   startAngle = -angle;

  }

 }

}

 

 

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:gravity="center" >

 

    <TextView

        android:id="@+id/tv"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="15dp"

        android:text="TextView" />

 

    <ImageView

        android:id="@+id/iv"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@+id/textView1"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="48dp"

        android:src="@drawable/pointer" />

 

 

 

转载于:https://www.cnblogs.com/freenovo/p/4469797.html

你可能感兴趣的文章
编写可维护的JavaScript
查看>>
高效的CSS代码(2)
查看>>
朱兰的质量三部曲——《可以量化的管理学》
查看>>
丰田生产方式和TOC工序切换时间的解决
查看>>
2017年勒索软件、物联网攻击将继续肆虐
查看>>
用友网络董事长王文京为何出现在乌镇大会中?
查看>>
大学团队打造手语翻译机器人,完整安装下来需要149个小时
查看>>
Wireshark抓包分析/TCP/Http/Https及代理IP的识别
查看>>
不同包下,相同数据结构的两个类进行转换
查看>>
软件安装(linux)
查看>>
TeamPlain for VSTS - Web Access for Team System-TFS 跨平台的客户端
查看>>
面对前车之鉴的AR,现在的VR要做些什么?
查看>>
vscode 换行符\n 变成\r\n
查看>>
一个绘制虚线的非常规函数(常规方法,打印机上绘制不出虚线)
查看>>
获得本机的IP,掩码和网关
查看>>
大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用
查看>>
Delphi中将XML文件数据装入DataSet
查看>>
你刚才在淘宝上买了一件东西
查看>>
发布一个 Linux 下的 C++ 多线程库
查看>>
Python序列类型
查看>>