类似微信

package bw.com.bw_day09_sensor.demo03;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;

import bw.com.bw_day09_sensor.R;

public class SensorActivity03 extends AppCompatActivity implements SensorEventListener{

    private int[] images = {R.mipmap.image1,R.mipmap.image2,R.mipmap.image3};
    private int index;
    private SensorManager sensorManager;//传感器的管理器对象
    private Sensor sensor;//传感器
    private LinearLayout mLayout;

    //添加震动  -- 震动的管理器对象
    private Vibrator vibrator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sensor03);

        mLayout = (LinearLayout) findViewById(R.id.layout_id);

        //声明震动管理器对象
        vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

        //1, 获取传感器的管理器对象
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        //2, 得到传感器对象
        sensor = sensorManager.getDefaultSensor(1);
    }
    //3, 注册监听

    @Override
    protected void onStart() {
        super.onStart();
        sensorManager.registerListener(this,sensor,200);
    }
    //4, 取消注册
    @Override
    protected void onStop() {
        super.onStop();
        sensorManager.unregisterListener(this);
    }

    //5, 得到数值的变化
    @Override
    public void onSensorChanged(SensorEvent event) {
        //TODO  数据发生变化的回调方法
        //获得数据
        float[] data = event.values;
        float x = data[0];
        float y = data[1];
        float z = data[2];
        if (Math.abs(x)>15 || Math.abs(y)>15 || Math.abs(z)>15){

            //添加切换图片的震动

            //毫秒:  300  摇晃多长时间开始震动  , 500 震动的持续时间
            long[] pattern = {300,500};
            //重复次数 , -1 不重复
            vibrator.vibrate(pattern,-1);

            //不停的改变layout 的背景
            if (index>2)
            {
                index = 0;
            }
            mLayout.setBackgroundResource(images[index]);
            index++;
        }
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        //TODO 精度发生变化的回调方法
    }


}



所需权限
<uses-permission android:name="android.permission.VIBRATE" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值