陀螺仪监听器动态让背景动起来。
来源:互联网 发布:ipad1怎么装软件 编辑:程序博客网 时间:2024/05/27 00:41
package simai.gyroscope.sensor;
import simai.sensor.R;
import android.app.Activity;
import android.graphics.Color;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;
/**螺旋仪传感器**/
public class Gyroscope_Sensor extends Activity implements SensorEventListener{
TextView gyText;
SensorManager sManager;
Sensor mSensor ;
ImageView mgyrosImage;
private float gyros_num = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.gyroscope_layout);
InitView();
}
public void InitView(){
sManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensor = sManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
gyText = (TextView) findViewById(R.id.groscope_text);
mgyrosImage = (ImageView) findViewById(R.id.groscope_image);
mgyrosImage.setImageResource(R.drawable.proximity10);
gyText.setTextColor(Color.WHITE);
gyText.setTextSize(15);
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
switch (event.sensor.getType()) {
case Sensor.TYPE_GYROSCOPE:
gyText.setText("X轴上的角度为:"+event.values [SensorManager.DATA_X]
+"\nY轴上的角度为:"+event.values [SensorManager.DATA_Y]
+"\nZ轴上的角度为:"+event.values [SensorManager.DATA_Z]);
int[] location = new int[2];
mgyrosImage.getLocationOnScreen(location);
/* int width = (location[0] + mgyrosImage.getRight() - mgyrosImage.getLeft()) / 2;
int height = (location[1] + mgyrosImage.getBottom() - mgyrosImage
.getTop()) / 2;*/
final Animation animation = new RotateAnimation(gyros_num,
event.values[SensorManager.DATA_X]*5, mgyrosImage.getWidth()/2,
mgyrosImage.getHeight()/2);
animation.setDuration(2000);
mgyrosImage.startAnimation(animation);
gyros_num = event.values[SensorManager.DATA_X];
break;
default:
break;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
sManager.registerListener(this, mSensor,Sensor.TYPE_GYROSCOPE);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
sManager.unregisterListener(this);
}
}
import simai.sensor.R;
import android.app.Activity;
import android.graphics.Color;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;
/**螺旋仪传感器**/
public class Gyroscope_Sensor extends Activity implements SensorEventListener{
TextView gyText;
SensorManager sManager;
Sensor mSensor ;
ImageView mgyrosImage;
private float gyros_num = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.gyroscope_layout);
InitView();
}
public void InitView(){
sManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensor = sManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
gyText = (TextView) findViewById(R.id.groscope_text);
mgyrosImage = (ImageView) findViewById(R.id.groscope_image);
mgyrosImage.setImageResource(R.drawable.proximity10);
gyText.setTextColor(Color.WHITE);
gyText.setTextSize(15);
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
switch (event.sensor.getType()) {
case Sensor.TYPE_GYROSCOPE:
gyText.setText("X轴上的角度为:"+event.values [SensorManager.DATA_X]
+"\nY轴上的角度为:"+event.values [SensorManager.DATA_Y]
+"\nZ轴上的角度为:"+event.values [SensorManager.DATA_Z]);
int[] location = new int[2];
mgyrosImage.getLocationOnScreen(location);
/* int width = (location[0] + mgyrosImage.getRight() - mgyrosImage.getLeft()) / 2;
int height = (location[1] + mgyrosImage.getBottom() - mgyrosImage
.getTop()) / 2;*/
final Animation animation = new RotateAnimation(gyros_num,
event.values[SensorManager.DATA_X]*5, mgyrosImage.getWidth()/2,
mgyrosImage.getHeight()/2);
animation.setDuration(2000);
mgyrosImage.startAnimation(animation);
gyros_num = event.values[SensorManager.DATA_X];
break;
default:
break;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
sManager.registerListener(this, mSensor,Sensor.TYPE_GYROSCOPE);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
sManager.unregisterListener(this);
}
}
0 0
- 陀螺仪监听器动态让背景动起来。
- 在Sliverlight中使用动态图片背景(gif),让你的图片动起来
- 飞机大战之一:让背景先动起来
- 让下划线动起来
- 让位图动起来!
- 让精灵动起来
- 让大脑动起来
- 让动画动起来
- 让cube动起来
- 让图片动起来
- [GEiv]第二章:动态绘制 让画面动起来
- DEM:让ERP动起来
- 让照片真正动起来
- 让google map 动起来
- 线程------让画面动起来
- Flex 让组件动起来
- 让 Angular 应用动起来!
- 5.让场景动起来
- 黑马程序员———C语言———【构造类型及结构体】
- RecylerView内部实现ItemClick事件
- HTML元素的拖动
- Ubuntu Navicat for MySQL安装以及问题破解方案
- 设计模式面试大集锦
- 陀螺仪监听器动态让背景动起来。
- poj_3278(BFS)
- CSS三列自适应布局
- 【IDE】module 未指定output path问题解决办法
- mysql多实例(mysqld_multi方式)
- 线段树区间合并LCIShdu3308
- Android客户端和服务端如何使用Token和Session
- 计算机专业学习浅谈
- Unity AssetBundle爬坑手记