全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程之方向传感器用法示例

本文实例讲述了Android编程之方向传感器用法。分享给大家供大家参考,具体如下:

/**
 * 传感器指针Demo
 *
 * @description:
 * @author ldm
 * @date 2016-4-25 下午5:29:18
 */
public class SensorHandActivity extends GraphicsActivity {
  // 传感器管理对象
  private SensorManager mSensorManager;
  // 传感器类
  private Sensor mSensor;
  // 自定义绘制指针View
  private MyCompassView mView;
  /**
   * 方向传感器检测到的感应值 values[0]: Azimuth(方位),地磁北方向与y轴的角度,围绕z轴旋转(0到359)。0=North,
   * 90=East, 180=South, 270=West values[1]: Pitch(俯仰),围绕X轴旋转(-180 to 180),
   * 当Z轴向Y轴运动时是正值 values[2]: Roll(滚),围绕Y轴旋转(-90 to 90),当X轴向Z轴运动时是正值
   */
  private float[] mValues;
  // 传感监听
  private final SensorEventListener mSensorListener = new SensorEventListener() {
    public void onSensorChanged(SensorEvent event) {
      mValues = event.values;
      if (mView != null) {
        mView.invalidate();
      }
    }
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }
  };
  @SuppressWarnings("deprecation")
  @Override
  protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
    mView = new MyCompassView(this);
    setContentView(mView);
  }
  @Override
  protected void onResume() {
    super.onResume();
    /**
     * 在onResume方法中注册传感器监听 事件
     * 第一个参数:监听Sensor事件,第二个参数是Sensor目标种类的值,第三个参数是延迟时间的精度密度。延迟时间的精密度参数 参数
     * 延迟时间 SensorManager.SENSOR_DELAY_FASTEST 0ms
     * SensorManager.SENSOR_DELAY_GAME 20ms SensorManager.SENSOR_DELAY_UI
     * 60ms SensorManager.SENSOR_DELAY_NORMAL 200ms
     */
    mSensorManager.registerListener(mSensorListener, mSensor,
        SensorManager.SENSOR_DELAY_GAME);
  }
  @Override
  protected void onStop() {
    // 在onStop方法中取消注册监听
    mSensorManager.unregisterListener(mSensorListener);
    super.onStop();
  }
  private class MyCompassView extends View {
    // 定义画笔Paint
    private Paint mPaint;
    // 定义绘制指针的路径Path
    private Path mPath;
    public MyCompassView(Context context) {
      super(context);
      initPaintAndPath();
    }
    private void initPaintAndPath() {
      // 初始化画笔
      mPaint = new Paint();
      mPaint.setAntiAlias(true);
      mPaint.setColor(Color.BLACK);
      mPaint.setStyle(Paint.Style.FILL);
      // 初始化绘制路径
      mPath = new Path();
      mPath.moveTo(0, -50);// 移动到指点点
      mPath.lineTo(-20, 60);// 用线条连接到指定点
      mPath.lineTo(0, 50);
      mPath.lineTo(20, 60);
      mPath.close();// 关闭路径
    }
    @Override
    protected void onDraw(Canvas canvas) {
      // 设置画面背景
      canvas.drawColor(Color.WHITE);
      int w = canvas.getWidth();
      int h = canvas.getHeight();
      int cx = w / 2;
      int cy = h / 2;
      canvas.translate(cx, cy);// 移动画面,把指针放到中央
      if (mValues != null) {
        canvas.rotate(-mValues[0]);
      }
      canvas.drawPath(mPath, mPaint);
    }
  }
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android资源操作技巧汇总》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android编程之activity操作技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 方向传感器  # Android编程之光线传感器用法详解  # Android编程使用光线传感器获取光线强弱的方法【LightSensorManager封装类】  # Android开发中方向传感器定义与用法详解【附指南针实现方法】  # Android开发中的重力传感器用法实例详解  # Android编程中光线传感器的调用方法详解  # android 传感器(OnSensorChanged)使用介绍  # Android利用方向传感器获得手机的相对角度实例说明  # Android 利用方向传感器实现指南针具体步骤  # Android 传感器--光照传感器详解及使用  # Android重力传感器实现滚动的弹球  # Android操作系统介绍之11种传感器  # Android编程基于距离传感器控制手机屏幕熄灭的方法详解  # 操作技巧  # 延迟时间  # 进阶  # 轴向  # 相关内容  # 第一个  # 感兴趣  # 第二个  # 给大家  # 自定义  # 第三个  # 更多关于  # 所述  # 连接到  # 程序设计  # 检测到  # 下午  # 用线  # 讲述了  # East 


相关文章: 如何选择PHP开源工具快速搭建网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何在阿里云虚拟主机上快速搭建个人网站?  建站之星后台管理如何实现高效配置?  如何在Windows服务器上快速搭建网站?  广平建站公司哪家专业可靠?如何选择?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  定制建站策划方案_专业建站与网站建设方案一站式指南  建站之星后台管理系统如何操作?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Python文件管理规范_工程实践说明【指导】  如何实现建站之星域名转发设置?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  建站之星CMS建站配置指南:模板选择与SEO优化技巧  建站三合一如何选?哪家性价比更高?  建站之星如何快速生成多端适配网站?  如何规划企业建站流程的关键步骤?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  山东网站制作公司有哪些,山东大源集团官网?  PHP正则匹配日期和时间(时间戳转换)的实例代码  定制建站流程解析:需求评估与SEO优化功能开发指南  威客平台建站流程解析:高效搭建教程与设计优化方案  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何用PHP快速搭建高效网站?分步指南  如何注册花生壳免费域名并搭建个人网站?  网站制作网站,深圳做网站哪家比较好?  建站之星图片链接生成指南:自助建站与智能设计教程  如何在IIS7上新建站点并设置安全权限?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  宁波免费建站如何选择可靠模板与平台?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何通过万网虚拟主机快速搭建网站?  制作公司内部网站有哪些,内网如何建网站?  如何在服务器上三步完成建站并提升流量?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何选购建站域名与空间?自助平台全解析  专业网站建设制作报价,网页设计制作要考什么证?  建站之星后台密码遗忘如何找回?  内网网站制作软件,内网的网站如何发布到外网?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在云指建站中生成FTP站点?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  如何在七牛云存储上搭建网站并设置自定义域名?  建站之星如何快速解决建站难题?  移民网站制作流程,怎么看加拿大移民官网?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。