日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android笔记(十九)制作一个简易的指南针

發布時間:2023/12/14 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android笔记(十九)制作一个简易的指南针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、獲取方向的方法

Android 獲取手機旋轉的方向和角度是通過加速度傳感器和地磁傳感器共同計算得出的,這是 Android 目前推薦使用的方式。正常情況下,手機的頭部如果是正北方向,那么它圍繞Z軸的旋轉方向數值會是0。我們就可以根據手機圍繞Z軸的旋轉方向的數值來計算方位。

  • 通過SensorManager 的getRotationMatrix()方法中就可以得到一個包含旋轉矩陣的 R 數組。第一個參數 R 是一個長度為 9 的 float 數組, getRotationMatrix()方法計算出的旋轉數據就會賦值到這個數組當中。第二個參數是一個用于將地磁向量轉換成重力坐標的旋轉矩陣,通常指定為 null 即可。第三和第四個參數則分別就是加速度傳感器和地磁傳感器輸出的values 值。
  • 通過SensorManager.getOrientation()方法可以得到手機的旋轉數據,第一個參數是R數組,第二個參數是旋轉數據,values[0]記錄著手機圍繞著 Z 軸的旋轉弧度, values[1]記錄著手機圍繞 X 軸的旋轉弧度, values[2]記錄著手機圍繞 Y 軸的旋轉弧度。
  • RotateAnimation旋轉動畫效果

    RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

    第一個參數:旋轉的開始角度
    第二個參數:旋轉的結束角度
    第三個參數:X軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
    第四個參數:X坐標的伸縮值。
    第五個參數:Y軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
    第六個參數:Y坐標的伸縮值。

  • 二、1.建立布局

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" ><ImageView android:id="@+id/circle"android:layout_width="250dp"android:layout_height="250dp"android:layout_centerInParent="true"android:src="@drawable/circle" /><ImageView android:id="@+id/arrow"android:layout_width="60dp"android:layout_height="110dp"android:layout_centerInParent="true"android:src="@drawable/arrow" /></RelativeLayout>

    2.MainActivity

    public class MainActivity extends ActionBarActivity {private SensorManager sensorManager;private ImageView circle;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);circle = (ImageView) findViewById(R.id.circle);sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);Sensor magnetic = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);Sensor accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);sensorManager.registerListener(listener, magnetic,SensorManager.SENSOR_DELAY_GAME);sensorManager.registerListener(listener, accelerometer,SensorManager.SENSOR_DELAY_GAME);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();if (sensorManager != null) {sensorManager.unregisterListener(listener);}}private SensorEventListener listener = new SensorEventListener() {float[] accelerometerValues = new float[3];float[] magneticValues = new float[3];private float lastDegree;@Overridepublic void onSensorChanged(SensorEvent event) {if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {accelerometerValues = event.values.clone();} else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {magneticValues = event.values.clone();}float[] R = new float[9];float[] values = new float[3];SensorManager.getRotationMatrix(R, null, accelerometerValues,magneticValues);SensorManager.getOrientation(R, values);// 將計算出的旋轉角度取反,用于旋轉指南針背景圖float rotateDegree = -(float) Math.toDegrees(values[0]);if (Math.abs(rotateDegree - lastDegree) > 1) {RotateAnimation animation = new RotateAnimation(lastDegree,rotateDegree, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);animation.setFillAfter(true);// 動畫執行完后是否停留在執行完的狀態circle.startAnimation(animation);lastDegree = rotateDegree;}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}};

    三、效果如圖

    完整項目代碼和apk安裝文件參考如下:
    http://download.csdn.net/detail/tomi_en/9082505

    總結

    以上是生活随笔為你收集整理的Android笔记(十九)制作一个简易的指南针的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 高清久久久久久 | aa视频免费观看 | 亚洲aaaa级特黄毛片 | 加勒比一区二区三区 | 男女在线免费观看 | 天天爽夜夜春 | 亚洲精品电影在线观看 | 中文字幕一区二区久久人妻网站 | 性色av网址 | 催眠调教艳妇成肉便小说 | 欧美成人免费一级 | 最新国产露脸在线观看 | 揄拍成人国产精品视频 | 国产精品88久久久久久妇女 | 欧美日韩视频免费观看 | 久久精品一区二区在线观看 | 特黄视频在线观看 | 深夜毛片| 超碰在线人 | 来吧亚洲综合网 | 伊人春色网 | 国产精品秘 | 国产第8页 | 精品久久伊人 | 亚洲动漫精品 | 亚洲一区精品视频 | 欧美激情性生活 | 女儿的朋友4在线观看 | 少妇一级淫片免费看 | 黄色一级带| 久久综合国产 | 日韩欧美亚洲国产精品字幕久久久 | 亚洲成人网在线 | 国模杨依粉嫩蝴蝶150p | 日韩有码电影 | 在线亚洲+欧美+日本专区 | 蜜桃导航-精品导航 | 中文字幕在线不卡视频 | 日韩免费高清视频网站 | 色一五月| 日本中文字幕网站 | 成人一区二区三区四区 | 精品成人中文无码专区 | 亚洲欧美激情另类校园 | 色婷婷国产精品综合在线观看 | 国产第一网站 | 黑人极品videos精品欧美裸 | 日韩国产欧美一区二区 | 四川一级毛毛片 | 日韩精品短片 | 亚洲一区二区三区蜜桃 | 男人的天堂一区 | 亚洲色图35p | 亚洲精品一区二区三区蜜桃久 | 亚洲aaa级 | 长河落日电视连续剧免费观看01 | 国语对白对话在线观看 | 欧美性受xxxx狂喷水 | 无人码人妻一区二区三区免费 | 中文字幕免费一区二区 | 扶她futa粗大做到怀孕 | 超黄网站在线观看 | 国产精品探花一区二区三区 | 中文字幕乱码人妻无码久久95 | 国产色综合视频 | 人妻精品无码一区二区 | 欧美日韩在线免费观看 | 国产伦精品一区二区三区四区免费 | 亚欧精品在线观看 | 成人福利片 | 久久伊人超碰 | 国产精品一二三区视频 | 久久久观看 | 一区二区三区在线 | 麻豆高清免费国产一区 | 五月婷婷中文 | 麻豆视频网站入口 | 婷婷色吧| 免费网站在线观看黄色 | 逼逼av| av一级免费 | 大桥未久恸哭の女教师 | 欧美第一页在线 | 91国产视频在线播放 | 最新国产拍偷乱偷精品 | 久久噜噜噜精品国产亚洲综合 | 免费av观看| 女人久久久| 极品少妇xxxx精品少妇 | 丰满少妇麻豆av苏语棠 | 色窝窝无码一区二区三区成人网站 | 国产伦理久久精品久久久久 | 一区二区中文字幕 | 成人综合在线视频 | 麻豆爱爱视频 | 国产精品久久久久久久久免费软件 | 少妇床戏av| 色婷婷av一区二区三区软件 | 久久午夜夜伦鲁鲁片 |