那么我还需要一个主界面控制一下~
package com.syxy.dice;
import Android.app.Activity;
import android.app.Service;
import android.graphics.Canvas;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener,
SensorEventListener{
Button play, reset;
MySurfaceView view;
Dice dice;
Canvas canvas;
SensorManager sensorManager = null; //传感器管理器
Vibrator vibrator = null; //振动传感器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); //取得传感器管理器的实例
vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);
view = (MySurfaceView)findViewById(R.id.view);
dice = new Dice(getResources());
play = (Button)findViewById(R.id.play);
reset = (Button)findViewById(R.id.reset);
canvas = new Canvas();
play.setOnClickListener(this);
reset.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("-----10-----");
sensorManager.unregisterListener(this);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("-----11-----");
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == play){
view.i = 1;
view.isRun = true;
}else if(v == reset){
canvas = view.holder.lockCanvas();
dice.DrawDice(canvas, view.Dice_x, view.Dice_y);
view.holder.unlockCanvasAndPost(canvas);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
System.out.println("-----12-----");
int sensorType = event.sensor.getType(); //得到传感器的类型
//values的值,values[0]:X轴,values[1]:Y轴,values[2]:Z轴
System.out.println("-----13-----");
float[] values = event.values;
System.out.println("-----14-----");
if(sensorType == Sensor.TYPE_ACCELEROMETER){ //如果传感器类型是加速度计
System.out.println("-----15-----");
if(Math.abs(values[0])> 10
|| Math.abs(values[1]) > 10
|| Math.abs(values[2] )> 10){
System.out.println("-----16-----");
vibrator.vibrate(300);
view.isRun = true;
System.out.println("-----摇一摇-----");
}
}
}
}