,图片神马的在网上搜个指南针图片就好了,本来没有注释,发上来之后感觉不行,还是加上吧,方便学习



main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center"    >    <ImageView        android:id="@+id/compass_imageView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/compass" /></LinearLayout>


compass.Activity

  
import android.app.Activity;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.view.animation.Animation;import android.view.animation.RotateAnimation;import android.widget.ImageView;/** * 电子罗盘 方向传感器 */public class ComPassActivity extends Activity implements SensorEventListener {private ImageView imageView;private float currentDegree = 0f;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.compass);imageView = (ImageView) findViewById(R.id.compass_imageView);// 传感器管理器SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);// 注册传感器(Sensor.TYPE_ORIENTATION(方向传感器);SENSOR_DELAY_FASTEST(0毫秒延迟);// SENSOR_DELAY_GAME(20,000毫秒延迟)、SENSOR_DELAY_UI(60,000毫秒延迟))sm.registerListener(ComPassActivity.this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_FASTEST);}//传感器报告新的值(方向改变)public void onSensorChanged(SensorEvent event) {if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {float degree = event.values[0];/*RotateAnimation类:旋转变化动画类 参数说明:fromDegrees:旋转的开始角度。toDegrees:旋转的结束角度。pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。pivotXValue:X坐标的伸缩值。pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。pivotYValue:Y坐标的伸缩值*/RotateAnimation ra = new RotateAnimation(currentDegree, -degree,Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);//旋转过程持续时间ra.setDuration(200);//罗盘图片使用旋转动画imageView.startAnimation(ra);currentDegree = -degree;}}//传感器精度的改变public void onAccuracyChanged(Sensor sensor, int accuracy) {}}



更多相关文章

  1. Android(安卓)matrix 控制图片的旋转、缩放、移动
  2. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
  3. android 自定义view
  4. android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
  5. android中传感器的学习
  6. 自定义带倒影和偏转的超炫Gallery
  7. Android(安卓)旋转屏幕捕获当前屏幕的状态
  8. Android(安卓)拍照及相册选图的那些坑
  9. android Gallery3D效果

随机推荐

  1. 2010.11.15———android spinner下拉列
  2. [置顶] Android上传文件到Web服务器,PHP接
  3. Android 应用中执行cd命令
  4. Android新建项目报错android:icon="@draw
  5. Android 中数据库查询方法 query() 中的
  6. Android 中加入SD card 应用
  7. Android(安卓)长按Listview显示CheckBox,
  8. Android 事件触发机制
  9. Android关机流程解析
  10. Android不显示开机向导和开机气泡