編輯:關於Android編程
public class SensorActivity extends Activity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mSensor;
@Override
public final void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//第一步:通過getSystemService獲得SensorManager實例對象
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//第二步:通過SensorManager實例對象獲得想要的傳感器對象:參數決定獲取哪個傳感器
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
}
//第四步:必須重寫的兩個方法:onAccuracyChanged,onSensorChanged
/**
* 傳感器精度發生改變的回調接口
*/
@Override
public final void onAccuracyChanged(Sensor sensor, int accuracy) {
//TODO 在傳感器精度發生改變時做些操作,accuracy為當前傳感器精度
}
/**
* 傳感器事件值改變時的回調接口:執行此方法的頻率與注冊傳感器時的頻率有關
*/
@Override
public final void onSensorChanged(SensorEvent event) {
// 大部分傳感器會返回三個軸方向x,y,x的event值,值的意義因傳感器而異
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
//TODO 利用獲得的三個float傳感器值做些操作
}
/**
* 第三步:在獲得焦點時注冊傳感器並讓本類實現SensorEventListener接口
*/
@Override
protected void onResume() {
super.onResume();
/*
*第一個參數:SensorEventListener接口的實例對象
*第二個參數:需要注冊的傳感器實例
*第三個參數:傳感器獲取傳感器事件event值頻率:
* SensorManager.SENSOR_DELAY_FASTEST = 0:對應0微秒的更新間隔,最快,1微秒 = 1 % 1000000秒
* SensorManager.SENSOR_DELAY_GAME = 1:對應20000微秒的更新間隔,游戲中常用
* SensorManager.SENSOR_DELAY_UI = 2:對應60000微秒的更新間隔
* SensorManager.SENSOR_DELAY_NORMAL = 3:對應200000微秒的更新間隔
* 鍵入自定義的int值x時:對應x微秒的更新間隔
*
*/
mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
/**
* 第五步:在失去焦點時注銷傳感器
*/
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
}
mSensor = mSensorManager.getDefaultSensor(int TYPE);//TYPE為Sensor中定義的static final 值
/**
* 獲取加速度感應器的常量
*/
public static final int TYPE_ACCELEROMETER = 1;
/**
* 獲取磁場感應器的常量
*/
public static final int TYPE_FIELD = 2;
/**
* 獲取方向感應器的常量,已過時
*/
@Deprecated
public static final int TYPE_ORIENTATION = 3;
/**
* 獲取陀螺儀感應器的常量
*/
public static final int TYPE_GYROSCOPE = 4;
/**
* 獲取光線感應器的常量
*/
public static final int TYPE_LIGHT = 5;
/**
* 獲取壓力感應器的常量
*/
public static final int TYPE_PRESSURE = 6;
@Deprecated
public static final int TYPE_TEMPERATURE = 7;//獲取溫度傳感器,已過時
/**
* 獲取距離感應器的常量
*/
public static final int TYPE_PROXIMITY = 8;
/**
* 獲取重力感應器的常量
*/
public static final int TYPE_GRAVITY = 9;
/**
* 獲取線性加速度感應器的常量
*/
public static final int TYPE_LINEAR_ACCELERATION = 10;
/**
* 獲取旋轉矢量感應器的常量
*/
public static final int TYPE_ROTATION_VECTOR = 11;
/**
* 獲取相對濕度感應器的常量
*/
public static final int TYPE_RELATIVE_HUMIDITY = 12;
/**
* 獲取溫度感應器的常量:取締了public static final int TYPE_TEMPERATURE = 7;
*/
public static final int TYPE_AMBIENT_TEMPERATURE = 13;
Android官方提供的支持不同屏幕大小的全部方法
本文將告訴你如何讓你的應用程序支持各種不同屏幕大小,主要通過以下幾種辦法:讓你的布局能充分的自適應屏幕 根據屏幕的配置來加載合適的UI布局 確保正確的布局應用在正確的設備
Android中RecyclerView布局代替GridView實現類似支付寶的界面
單純使用GridView通用的兩種給GridView 添加分割線的方法;http://stackoverflow.com/questions/7132030/androi
android中Activity詳解(生命周期、以各種方式啟動Activity、狀態保存,完全退出等)
一、什麼是Activity?簡單的說:Activity就是布滿整個窗口或者懸浮於其他窗口上的交互界面。在一個應用程序中通常由多個Activity構成,都會在Manifes
SpannableString 的一些效果顯示
一個人需要隱藏多少秘密才能巧妙地度過一生 — 倉央嘉措前言上次看到一款學習的 App,有這樣一個功能,在一個 TextView 中有一段英文,點擊英文單詞通過