WEB开发网
开发学院手机开发Android 开发 Android加速感应器开发平衡球代码解析 阅读

Android加速感应器开发平衡球代码解析

 2011-01-05 10:14:17 来源:本站整理   
核心提示: public void stopSimulation() { //暂停时主要是停掉感应器 mSensorManager.unregisterListener(this); } public SimulationView(Context context) { super(context); mAcceler

   public void stopSimulation() { //暂停时主要是停掉感应器
       mSensorManager.unregisterListener(this);
     }

   public SimulationView(Context context) {
       super(context);
       mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); //实例化加速感应器

     DisplayMetrics metrics = new DisplayMetrics();
       getWindowManager().getDefaultDisplay().getMetrics(metrics); //分辨率获取
       mXDpi = metrics.xdpi;
       mYDpi = metrics.ydpi;
       mMetersToPixelsX = mXDpi / 0.0254f;
       mMetersToPixelsY = mYDpi / 0.0254f;

     Bitmap ball = BitmapFactory.decodeResource(getResources(), R.drawable.ball);
       final int dstWidth = (int) (sBallDiameter * mMetersToPixelsX + 0.5f);
       final int dstHeight = (int) (sBallDiameter * mMetersToPixelsY + 0.5f);
       mBitmap = Bitmap.createScaledBitmap(ball, dstWidth, dstHeight, true); //根据屏幕分辨率来设置素材的显示缩放比例

     Options opts = new Options();
       opts.inDither = true;
       opts.inPreferredConfig = Bitmap.Config.RGB_565;
       mWood = BitmapFactory.decodeResource(getResources(), R.drawable.wood, opts);
     }

   @Override
     protected void onSizeChanged(int w, int h, int oldw, int oldh) { //当View有变化时,Android123提示比如说横竖屏切换
       mXOrigin = (w - mBitmap.getWidth()) * 0.5f;
       mYOrigin = (h - mBitmap.getHeight()) * 0.5f;
       mHorizontalBound = ((w / mMetersToPixelsX - sBallDiameter) * 0.5f);
       mVerticalBound = ((h / mMetersToPixelsY - sBallDiameter) * 0.5f);
     }

   @Override
     public void onSensorChanged(SensorEvent event) { //感应器数据有变化时
       if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
         return;
       switch (mDisplay.getRotation()) {
         case Surface.ROTATION_0:
           mSensorX = event.values[0];
           mSensorY = event.values[1];
           break;
         case Surface.ROTATION_90:
           mSensorX = -event.values[1];
           mSensorY = event.values[0];
           break;
         case Surface.ROTATION_180:
           mSensorX = -event.values[0];

上一页  1 2 3 4 5 6  下一页

Tags:Android 加速 感应器

编辑录入:coldstar [复制链接] [打 印]
赞助商链接