您的位置:首页 > 其它

指南针安卓demo

2016-05-13 21:17 471 查看
////////////////2016/05/12//////////////////

///////////////by xbw/////////////////////////

/////////////eclipse api21/////////////

指南针小demo,整理一下,



package com.example.compass;

import android.app.Activity;
import android.content.Context;
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 MainActivity extends Activity {
SensorManager manager;
ImageView imgView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgView = (ImageView) findViewById(R.id.url_article_img);
imgView.setKeepScreenOn(true);
manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
SensorEventListener sensorListener = new SensorEventListener() {
private float predegree = 0;

public void onSensorChanged(SensorEvent event) {
float degree = event.values[0];// 数组中的第一个数是方向值
RotateAnimation anim = new RotateAnimation(predegree, -degree,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(200);
imgView.startAnimation(anim);
predegree = -degree;// 记录这一次的起始角度作为下次旋转的初始角度
}

public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onPause() {
super.onPause();
manager.unregisterListener(sensorListener);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
manager.registerListener(sensorListener, sensor,
SensorManager.SENSOR_DELAY_GAME);
}
}


xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.compass.MainActivity" >

<ImageView
android:id="@+id/url_article_img"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="161dp"
android:background="@drawable/zhinanzhen2" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/url_article_img"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
android:text="指南针"
android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="by xbw" />

</RelativeLayout>


权限

<uses-permission android:name="android.permission.VIBRATE" />


demo传送门
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: