新年第一帖——耍一耍Android 摇一摇功能
初七就要上班的伤不起,新年第一天就要上班的更加伤不起,自己找点事情干干,干点啥子好呢,随便点点APP,发现对手家app出了一个新模块,配合新年来了一个摇一摇功能,灵机一动,就写个摇一摇的demo耍耍
首先要明白 摇一摇其实就是一张图片,然后此图片会旋转即可完成布局。
其余的功能当然是想啥时候做就啥时候做喽。
废话不多说 布局代码不需要多写了
之前看到一些博客中说到摇一摇需要在注册文件中加入 Sensor.TYPE_ACCELEROMETER 的 uses-permission 经过测试这是根本不需要的
动画代码 用xml写即可,方便简单:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="-70"
android:toDegrees="100"
android:duration="400"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
activtiy 代码 需要重载 SensorEventListener2 这个的监听
@Override
public void onFlushCompleted(Sensor sensor) {
}
@Override
public void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
//values[0]:X轴,values[1]:Y轴,values[2]:Z轴
float[] values = event.values;
if (sensorType == Sensor.TYPE_ACCELEROMETER)
{
if ((Math.abs(values[0]) > 17 || Math.abs(values[1]) > 17 || Math
.abs(values[2]) > 17))
{
Log.d("sensor x ", "============ values[0] = " + values[0]);
Log.d("sensor y ", "============ values[1] = " + values[1]);
Log.d("sensor z ", "============ values[2] = " + values[2]);
//摇动手机后,再伴随震动提示~~
vibrator.vibrate(100);
initAnimation(yaoyiyaoImageView);
Toast.makeText(MainActivity.this,"摇一摇",Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
sorManager sm = null;
Vibrator vibrator = null;//这个是震动 加上这个必须加入注册文件震动
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);