package com.mamezou.android.shake;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
public class ShakeActivity extends Activity implements SensorEventListener {
private SensorManager sensorManager;
private ValueHolder x;
private ValueHolder y;
private ValueHolder z;
private View layout;
// なんちゃってAndroidの画像(Andy君)
private BitmapDrawable andy;
private static final int ELEMENT_COUNT = 30;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
layout = (View) findViewById(R.id.layout);
andy = (BitmapDrawable) getResources().getDrawable(R.drawable.andy);
}
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_FASTEST);
x = new ValueHolder(ELEMENT_COUNT);
y = new ValueHolder(ELEMENT_COUNT);
z = new ValueHolder(ELEMENT_COUNT);
}
@Override
protected void onStop() {
sensorManager.unregisterListener(this);
super.onStop();
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent e) {
float sensorValueX = e.values[SensorManager.DATA_X];
float sensorValueY = e.values[SensorManager.DATA_Y];
float sensorValueZ = e.values[SensorManager.DATA_Z];
x.add(sensorValueX);
y.add(sensorValueY);
z.add(sensorValueZ);
float valueX = sensorValueX - x.getMedian();
float valueY = sensorValueX - x.getMedian();
float valueZ = sensorValueX - x.getMedian();
andy.setAlpha(15 * (int)(Math.abs(valueX) + Math.abs(valueY) + Math.abs(valueZ)));
layout.setBackgroundDrawable(andy);
}
}
金枝玉叶9
- 粉丝: 205
- 资源: 7637
最新资源
- 在Web应用中web.xml利用Spring配置log4j
- 四轮转向汽车Carsim-simulink联合仿真MPC路径跟踪模型(.cpar文件 .slx文件)
- 437大神C#基于winform商品进销存管理系统毕业课程源码设计
- 乾颐堂HCIE RS网工面试 葵花宝典(3.0)
- 基于扩展卡尔曼滤波的永磁同步电机直接转矩控制仿真模型 可正常运行
- springboot+sqlite3+iceEditor开发网页版记事本
- autosar 脚本编辑,包括bsw配置,mcal配置
- 438大神基于安卓Android商品销售管理系统毕业课程源码设计+论文资料
- 2024全国普通高校大学生竞赛分析报告
- 详细讲解,蓄电池超级电容混合储能系统simulink能量管理发电侧是光伏发电,仿真模型 完美运行
- jdk api 1.8_google.chw
- HCIE3.0面试宝典吐血精品-解锁版考试题
- 439大神基于三层vb.net图书管理系统毕业课程源码设计
- EmbedPress Pro v3.6.10 - WordPress多合一嵌入插件
- 用于嵌入式设备简单调试的日志,可以方便的将需要输出的信息进行格式化显示 YLOG 目前包含一个源码文件 y-log.h 和 y-log.c 文件,使用时仅需
- channel_127676203_1254670_2a1fee7d08bb2c29fe73b7f8929506d7.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈