android加速度传感器框架,android 加速度传感器

package com.example.ballviewballview;

import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.view.Display;

import android.view.Surface;

import android.view.View;

import android.widget.Toast;

public class MainActivity extends Activity {

private MyView mv;

private SensorManager mSensorManager;

private Display mDisplay;

@Override

protected void onCreate(Bundle

savedInstanceState) {

super.onCreate(savedInstanceState);

// Get an instance of the

SensorManager

mSensorManager = (SensorManager)

getSystemService(SENSOR_SERVICE);

mv=new MyView(this);

setContentView(mv);

}

public class MyView extends View implements

SensorEventListener{

Bitmap

bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.xin);

private Sensor sensor;

private long

mSensorTimeStamp;

private long mCpuTimeStamp;

public float x=0,y=0;

public float bx=0,by=0;

public float

speedx=0,speedy=0;

public float

currentx=0,currenty=0;

public MyView(Context context)

{

super(context);

sensor=mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

//注册监听器

mSensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_UI);

}

public void

onPause(){ mSensorManager.unregisterListener(this); } public void onDraw(Canvas

canvas)

{ super.onDraw(canvas);

Paint

paint=new Paint();

canvas.drawColor(Color.BLUE);

canvas.drawBitmap(bitmap,currentx,currenty,paint);

invalidate();

}

@Override

public void

onAccuracyChanged(Sensor sensor, int accuracy) {

// TODO

Auto-generated method stub

}

@Override

public void

onSensorChanged(SensorEvent event) {

if

(event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)

return;

x = event.values[0];

y = event.values[1];

currentx=currentx+5*x;

currenty=currenty-5*y;

if(currentx<0)currentx=0;

if(currenty<0)currenty=0;

if(currentx>(getWidth()-bitmap.getWidth()))currentx=getWidth()-bitmap.getWidth();

if(currenty>(getHeight()-bitmap.getHeight()))currenty=getHeight()-bitmap.getHeight();

Toast.makeText(getContext(),"x="+x+",y="+y,Toast.LENGTH_SHORT).show(); }

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值