美文网首页
传感器(抖一抖)

传感器(抖一抖)

作者: Summer_27d1 | 来源:发表于2018-07-02 19:15 被阅读0次

    xml
    ···
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="{relativePackage}.{activityClass}" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/ic_launcher"
        android:visibility="invisible"
         />
    

    </RelativeLayout>

    ···
    MainActivity
    ···
    package com.example.ytest10_sensor;

    import android.animation.AnimatorSet;
    import android.animation.ObjectAnimator;
    import android.app.Activity;
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.Toast;

    public class MainActivity extends Activity implements SensorEventListener {

    private SensorManager sensorManager;
    private Sensor defaultSensor;
    private ImageView img;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    img = (ImageView) findViewById(R.id.img);
    
        //1.获取传感器
        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
       //2.获取指定传感器
        defaultSensor = sensorManager.getDefaultSensor(1);
    
    }
      //3.注册sensorManager监听
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        sensorManager.registerListener(this,defaultSensor, SensorManager.SENSOR_DELAY_NORMAL);
        
    }
    

    // 当传感器发生改变时走该监听
    @Override
    public void onSensorChanged(SensorEvent event) {
    float x = event.values[0];
    float y = event.values[1];
    float z = event.values[2];
    Toast.makeText(getApplicationContext(), "x:"+x+"y: "+y+"z: "+z, 1).show();
    if (Math.abs(x)>14|| Math.abs(y)>14||Math.abs(z)>14) {

            ObjectAnimator rotation = ObjectAnimator.ofFloat(img, "rotation", 0,365*5);
            ObjectAnimator alpha = ObjectAnimator.ofFloat(img, "alpha", 0,1);
            ObjectAnimator scaleX = ObjectAnimator.ofFloat(img, "scaleX", 0,0.8f);
            ObjectAnimator scaleY = ObjectAnimator.ofFloat(img, "scaleY", 0,0.8f);
          AnimatorSet animatorSet = new AnimatorSet();
          img.setVisibility(View.VISIBLE);
          animatorSet.playTogether(rotation,alpha,scaleX,scaleY);
          animatorSet.setDuration(2000);
          animatorSet.start();
          
        }
        
        
        
    }
    

    // 当传感器速率发生改变时走这个监听
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub

    }
    

    }

    ···

    相关文章

      网友评论

          本文标题:传感器(抖一抖)

          本文链接:https://www.haomeiwen.com/subject/rzaluftx.html