(1) The layout file is as follows:
<?xml version= "1.0" encoding= "Utf-8"?><linearlayout xmlns:android="Http://schemas.android.com/apk/res/android" Android:layout_width="Fill_parent"android:layout_height="Fill_parent" Android:gravity="center"android:orientation="vertical" > <ImageViewandroid:id="@+id/imageview"android:layout_width="Wrap _content "android:layout_height=" Wrap_content "android:src=" @drawable/zn " /> </linearlayout>
Picture required:
(2) Mainactivity.java
Importandroid.app.Activity;ImportAndroid.content.Context;ImportAndroid.hardware.Sensor;ImportAndroid.hardware.SensorEvent;ImportAndroid.hardware.SensorEventListener;ImportAndroid.hardware.SensorManager;ImportAndroid.os.Bundle;ImportAndroid.view.animation.Animation;ImportAndroid.view.animation.RotateAnimation;ImportAndroid.widget.ImageView; Public class mainactivity extends Activity { PrivateImageView ImageView;PrivateSensormanager Manager;PrivateSensorlistener listener =NewSensorlistener ();@Override Public void onCreate(Bundle savedinstancestate) {Super. OnCreate (Savedinstancestate); Setcontentview (R.layout.main); ImageView = (ImageView) This. Findviewbyid (R.id.imageview); Imageview.setkeepscreenon (true); Manager = (Sensormanager) getsystemservice (Context.sensor_service); }@Override protected void Onresume() {Sensor sensor = Manager.getdefaultsensor (sensor.type_orientation); Manager.registerlistener (listener, sensor, sensormanager.sensor_delay_game);Super. Onresume (); }@Override protected void OnPause() {Manager.unregisterlistener (listener);Super. OnPause (); }Private Final class Sensorlistener implements Sensoreventlistener { Private floatPredegree =0; Public void onsensorchanged(Sensorevent event) {floatdegree = event.values[0];//Store a directional value ofrotateanimation animation =NewRotateanimation (Predegree,-degree, Animation.relative_to_self,0.5F, Animation.relative_to_self,0.5f); Animation.setduration ( $); Imageview.startanimation (animation); Predegree =-degree; } Public void onaccuracychanged(Sensor sensor,intaccuracy) {}}}
The effect is as follows:
Android Implementation Compass Features