android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/sounth"
android:id="@+id/iv_main_images"
/>
java代码中注释掉的部分都是一种传感器的测试。
MainActivity.java
代码如下
packagecom.example.cindy_sounth;
importandroid.content.Context;
importandroid.hardware.Sensor;
importandroid.hardware.SensorEvent;
importandroid.hardware.SensorEventListener;
importandroid.hardware.SensorManager;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.WindowManager;
importandroid.view.animation.RotateAnimation;
importandroid.widget.ImageView;
importandroid.widget.TextView;
importjava.util.List;
publicclassMainActivityextendsAppCompatActivity {
privateSensorManager sensorManager;
privateSensor sensorLight;
privateSensor sensorAcc;
privateSensor sensorOri;
privateTextView tv_main_result;
privateMyListner myListner;
privateImageView iv_main_images;
privatefloatcurrent;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//得到图片
iv_main_images = (ImageView) findViewById(R.id.iv_main_images);
tv_main_result = (TextView) findViewById(R.id.tv_main_result);
//得到传感器的管理者
sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
//得到光线传感器
// sensorLight = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
//获得加速度传感器
// sensorAcc = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//获取风向传感器
sensorOri = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
myListner =newMyListner();
}
//注册一个监听(监听某一个传感器的值)
@Override
protectedvoidonResume() {
super.onResume();
sensorManager.registerListener(myListner,sensorOri,sensorManager.SENSOR_DELAY_UI);
}
classMyListnerimplementsSensorEventListener{
privateWindowManager.LayoutParams layoutParams;
//当你的值发生改变
@Override
publicvoidonSensorChanged(SensorEvent event) {
float[] f=event.values;
//测试获取光线传感器的值(光线值)
// float light= f[0];
// tv_main_result.setText(light+"");
//测试获得加速度传感器
// float x= f[0];
// float y= f[1];
// float z= f[2];
// tv_main_result.setText("x="+x+"\ny="+y+"\nz="+z);
//测试获取风向传感器
// float x= f[0];
// float y= f[1];
// float z= f[2];
// tv_main_result.setText("x="+x+"\ny="+y+"\nz="+z);
//加图片测试指南针
floatx= f[0];
floaty= f[1];
floatz= f[2];
tv_main_result.setText("x="+x+"\ny="+y+"\nz="+z);
//实例化旋转动画
RotateAnimation rotateAnimation=newRotateAnimation(current,-x,RotateAnimation.RELATIVE_TO_SELF,0.5f,RotateAnimation.RELATIVE_TO_SELF,0.5f);
rotateAnimation.setDuration(200);
current=-x;
iv_main_images.startAnimation(rotateAnimation);
//改变屏幕的亮度
//先拿到屏幕
// WindowManager.LayoutParams layoutParams= getWindow().getAttributes();
// layoutParams.screenBrightness=light/225f;
// getWindow().setAttributes(layoutParams);
}
//当值发生精度改变
@Override
publicvoidonAccuracyChanged(Sensor sensor,intaccuracy) {
}
}
@Override
protectedvoidonDestroy() {
super.onDestroy();
sensorManager.unregisterListener(myListner);
}
publicvoidgetAllSensors(View view){
List sensors= sensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor : sensors) {
Log.i("test", sensor.getName());
// sensor.getPower();
}
}
}
本文来源:http://www.bbyears.com/asp/126840.html