馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
本帖最後由 kira800917 於 2013-5-11 22:44 編輯
package com.sensoreventlistener;
import org.openintents.sensorsimulator.hardware.Sensor;
import org.openintents.sensorsimulator.hardware.SensorEvent;
import org.openintents.sensorsimulator.hardware.SensorEventListener;
import org.openintents.sensorsimulator.hardware.SensorManagerSimulator;
import android.app.Activity;
import android.hardware.SensorManager;
/*在實機上
import java.util.List;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;*/
import android.os.Bundle;
import android.widget.ImageView;
//import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
//要使用感測器必須實作SensorEventListener介面
public class MainActivity extends Activity implements SensorEventListener {
/** Called when the activity is first created. */
//private SensorManager sensorManager; //在實機上
private SensorManagerSimulator sensorManager; //使用模擬器
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在實機上
//取得感測器服務(Sensor service)
//sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);//在實機上
//使用模擬器
//取得感測器服務(Sensor service)
sensorManager = SensorManagerSimulator.getSystemService(this,SENSOR_SERVICE);
//與感測模擬器連線
sensorManager.connectSimulator();
}
@Override
protected void onResume() {
super.onResume();
//註冊感應器
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
//解除感應器註冊
//在實機上
//解除感應器註冊
//sensorManager.unregisterListener(this);
//使用模擬器
//解除感應器註冊
sensorManager.unregisterListener(this);
//與感測模擬器斷線
sensorManager.disconnectSimulator();
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
//event:onSensorChanged傳入sensor的數值
float[] values = event.values;
//讀取感測器x軸,y軸,z軸的數值
String x = "X:" + String.valueOf(values[0])+"\n";
String y = "Y:" + String.valueOf(values[1])+"\n";
String z = "Z:" + String.valueOf(values[2])+"\n";
//顯示x軸,y軸,z軸在TextView上
TextView xyz=(TextView)findViewById(R.id.xyz);
xyz.setText(x+y+z);
ImageView img=(ImageView)findViewById(R.id.img);
//取得ImageView Layout的參數例如寬、高
LayoutParams params = (LayoutParams)img.getLayoutParams();
//利用X軸的數值設定imageview的寬、高,讓imageview放大縮小
params.width=(int)Math.abs(values[0])*20;
params.height=(int)Math.abs(values[0])*20;
//更新imageview的layout
img.setLayoutParams(params);
}
} |

|