国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android編程之方向傳感器用法示例

2019-12-12 02:12:55
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了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;  // 傳感監(jiān)聽  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方法中注冊傳感器監(jiān)聽 事件     * 第一個參數(shù):監(jiān)聽Sensor事件,第二個參數(shù)是Sensor目標種類的值,第三個參數(shù)是延遲時間的精度密度。延遲時間的精密度參數(shù) 參數(shù)     * 延遲時間 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方法中取消注冊監(jiān)聽    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相關內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》、《Android資源操作技巧匯總》、《Android文件操作技巧匯總》、《Android開發(fā)入門與進階教程》、《Android編程之a(chǎn)ctivity操作技巧總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴彦淖尔市| 仁布县| 竹溪县| 鄂伦春自治旗| 吐鲁番市| 岳阳县| 湄潭县| 延寿县| 石台县| 淮南市| 旺苍县| 全南县| 西畴县| 张家港市| 宁夏| 上饶市| 莫力| 沽源县| 惠安县| 高淳县| 宜兰市| 大悟县| 布尔津县| 哈密市| 萨嘎县| 河曲县| 临泉县| 双峰县| 聊城市| 乡城县| 南宫市| 湘潭市| 临江市| 寿阳县| 固安县| 栾川县| 凤城市| 突泉县| 西乌| 聂拉木县| 静宁县|