android传感器总结

基于方向传感器的一个小应用——指北针(高手勿喷)
注释比较多
[url]http://www.iteye.com/topic/737999[/url]

android 重力感应的使用

[url]http://blog.csdn.net/pku_android/article/details/7438745[/url]
Android的传感器编程小结
[url]http://www.cnblogs.com/nio-nio/archive/2009/10/23/1588610.html[/url]
Android方向传感器实践——自己动手做水平尺
[url]http://blog.csdn.net/tinya0913/article/details/6095307[/url]
[url]http://disanji.net/2011/08/30/android%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E4%B9%8B%E5%B0%8F%E7%90%83%E9%87%8D%E5%8A%9B%E6%84%9F%E5%BA%94%E5%AE%9E%E7%8E%B0/[/url]

[url]http://hi.baidu.com/lieal/blog/item/f8ec3fed7aa8a4ccb21cb128.html[/url]

[url]http://hi.baidu.com/huareal/blog/item/c5179bc6ac566021e5dd3bf1.html[/url]


Android设备信息获取
android.os.Build 包


Log.d(TAG, "device name : " +Build.MODEL);


HTC a510e 传感器支持情况:

04-22 23:54:43.003: D/debug(12091): BMA150 3-axis Accelerometer
04-22 23:54:43.003: D/debug(12091): AK8973 3-axis Magnetic field sensor
04-22 23:54:43.003: D/debug(12091): AK8973 Orientation sensor
04-22 23:54:43.003: D/debug(12091): CM3602 Proximity sensor
04-22 23:54:43.003: D/debug(12091): CM3602 Light sensor
04-22 23:54:43.003: D/debug(12091): Gravity Sensor
04-22 23:54:43.003: D/debug(12091): Linear Acceleration Sensor
04-22 23:54:43.013: D/debug(12091): Rotation Vector Sensor


st18i 传感器支持情况:
04-23 00:18:25.314: D/debug(8972): BMA150 accelerometer
04-23 00:18:25.314: D/debug(8972): AK8975 Compass
04-23 00:18:25.314: D/debug(8972): AK8975 Compass Raw
04-23 00:18:25.314: D/debug(8972): AK8975 Magnetic Field
04-23 00:18:25.314: D/debug(8972): APDS9702 Proximity
04-23 00:18:25.314: D/debug(8972): Gravity Sensor
04-23 00:18:25.314: D/debug(8972): Linear Acceleration Sensor
04-23 00:18:25.314: D/debug(8972): Rotation Vector Sensor


[quote]支持以下六种传感器:

加速度传感器 Accelerometer
地磁传感器 Magnetic field sensor
温度传感器 Temperature sensor
距离传感器 Proximity sensor
方向传感器 Orientation sensor
亮度传感器 Light sensor[/quote]
[url]http://madgoat.cn/2011/01/%E6%A3%80%E6%B5%8B%E6%89%8B%E6%9C%BA%E4%B8%AD%E7%9A%84sensor%E4%BC%A0%E6%84%9F%E5%99%A8%E7%B1%BB%E5%9E%8B/[/url]


Android 重力感应和屏幕旋转关系
[url]http://www.apkcode.com/html/2011/interface_0218/1848.html[/url]


关于重力感应系统的详细解释
[url]http://www.eoeandroid.com/thread-3105-1-1.html[/url]


Android重力感应模拟器实现与实例开发
[url]http://wxmijl.blog.163.com/blog/static/13245928201062734631474/[/url]
传感器模拟器
[url]http://code.google.com/p/openintents/downloads/detail?name=sensorsimulator-1.1.1.zip&can=2&q=[/url]


Android重力感应器Sensor编程
[url]http://www.apkcode.com/html/2011/interface_0218/1848.html[/url]

Android opengl 立方体 多纹理
[url]http://blog.csdn.net/one2zero/article/details/5895548[/url]
此例:2.3.3报错,解决后,无图

【Android】OpenGL 3D立方体多纹理贴图【附源码】
[url]http://blog.sina.com.cn/s/blog_62f987620100p64x.html[/url]


[url]http://www.eoeandroid.com/thread-44154-4-1.html[/url]53楼

请教如何在android中画出一个3D的圆球模型啊?
bluefuture 发表于 2010-11-22 21:18



DrawGlobe extends GLBase
{
private final float R = 0.5f;
private final int N = 50;
private final int T = 6;
private final int M = 9;
private final int NT = N * (T + M) - 1;
private final float Start = (float)Math.PI / 2;
private final float BASE = 2 * (float)Math.PI / N;
private final float ADD_1 = (float)Math.PI / T;
private final float ADD_2 = (float)Math.PI / (M - 1);
private final int LEN = 3 * NT;
private float an = 1;

private float[] coords;

FloatBuffer coordBuffer;

private void setCoords()
{
coords = new float[LEN];
int i, j, k, p, pos;
float angle = -ADD_1, rad, x1;
for(k = 0, p = 0; k < T; k++)
{
angle += ADD_1;
for (i = 0; i < N; i++, p++)
{
pos = p * 3;
rad = i * BASE + Start;

x1 = R * (float)Math.cos(rad);
coords[pos] = x1 * (float)Math.cos(angle);
coords[pos + 1] = R * (float)Math.sin(rad);
coords[pos + 2] = x1 * (float)Math.sin(angle);
}
}
float alpha = Start, beta = 0;
float y, r;
int ra = N /((M - 1) * 2);


for(k = 1; k < M; k++)
{
beta += ADD_2;
y = R * (float)Math.cos(beta);

for(j = 0; j < ra; j++,p++)
{
pos = p * 3;
rad = alpha - j * BASE;

coords[pos] = R * (float)Math.cos(rad);
coords[pos + 1] = R * (float)Math.sin(rad);
coords[pos + 2] = 0;
}
alpha -= ADD_2;
if(alpha == -Start)
break;

for(i = 0; i < N; i++, p++)
{
pos = p * 3;
rad = i * BASE;
r = R * (float)Math.sin(beta);

coords[pos] = r * (float)Math.cos(rad);
coords[pos + 1] = y;
coords[pos + 2] = r * (float)Math.sin(rad);
}
}

alpha = -Start;
for(i = 0; i < N/2; i++,p++)
{
pos = p * 3;
rad = i * BASE + alpha;

coords[pos] = R * (float)Math.cos(rad);
coords[pos + 1] = R * (float)Math.sin(rad);
coords[pos + 2] = 0;
}


}

public DrawGlobe(Context c)
{
super(c);

setCoords();
coordBuffer = makeFloatBuffer(coords);
}

private void initial(GL10 gl)
{
an += 1.0;
if(an == 360.0)
an = 0;
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
}

private void destroy(GL10 gl)
{
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}

@Override
protected void drawFrame(GL10 gl)
{
initial(gl);
draw(gl);
destroy(gl);
}

private void draw(GL10 gl)
{
gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glColor4f(0.5f, 0, 1, 1);
gl.glViewport(0, 0, 480, 480);
gl.glRotatef(an, 0, 1f, 0);
gl.glRotatef(an, 1f, 1f, 0);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, coordBuffer);
gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, NT);
}
}

这样就可以画出一个球了!


android 完整游戏源码(alignbody)
[url]http://wanran.iteye.com/blog/1049401[/url]
[quote]
2.背景音乐的播放
3.mvc设计模式应用
4.sharedPerferenced数据保存
5.手机震动
6.基础的网络传输[/quote]


浅谈Android中重力感应的实现方式
[url]http://www.itivy.com/android/archive/2011/6/27/android-gravity-sensing.html[/url]

[quote]在Android应用程序的开发中,占据主要地位的当属游戏的开发。我们在这篇文章中将会针对在游戏中需要用到的重力感应功能,来为大家详细分析Android重力感应的实现方法,以帮助大家解决相关问题。
Android中的很多游戏的游戏都使用了重力感应的技术,但其api demo却并没有重力感应的实例(不知道是不是我没找到,找到的朋友麻烦告诉我一下,谢谢),因为开发的需要,就研究了一下重力感应这方面,因为网上关于这方面的东西比较少,所以写出来跟大家交流一下,算是抛砖引玉吧。(ps.因为重力感应式需要真机才能测试的,所以,下面提供的demo程序只能在真机上跑。)
因为官方说明比较含糊难懂,我用最简单的方式讲一下Android重力感应系统的坐标系
以屏幕的左下方为原点(2d编程的时候,是以屏幕左上方为原点的,这个值得注意一下),箭头指向的方向为正。从-10到10,以浮点数为等级单位,想象一下以下情形:
手机屏幕向上(z轴朝天)水平放置的时侯,(x,y,z)的值分别为(0,0,10);
手机屏幕向下(z轴朝地)水平放置的时侯,(x,y,z)的值分别为(0,0,-10);
手机屏幕向左侧放(x轴朝天)的时候,(x,y,z)的值分别为(10,0,0);
手机竖直(y轴朝天)向上的时候,(x,y,z)的值分别为(0,10,0);
其他的如此类推,规律就是:朝天的就是正数,朝地的就是负数。利用x,y,z三个值求三角函数,就可以精确检测手机的运动状态了。
接下来,用最短的代码完成Android重力感应功能,程序效果就是在title上面输出x,y,z的值。[/quote]



package com.ray.test;
import Android.app.Activity;
import Android.os.Bundle;
import Android.hardware.SensorManager;
import Android.hardware.Sensor;
import Android.hardware.SensorEventListener;
import Android.hardware.SensorEvent;
public class SensorTest extends Activity {
private SensorManager sensorMgr;
Sensor sensor = sensorMgr.getDefaultSensor
(Sensor.TYPE_ACCELEROMETER);
private float x, y, z;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sensorMgr = (SensorManager)
getSystemService(SENSOR_SERVICE);
SensorEventListener lsn = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
x = e.values[SensorManager.DATA_X];
y = e.values[SensorManager.DATA_Y];
z = e.values[SensorManager.DATA_Z];
setTitle("x="+(int)x+","+"y="+(int)y+","+"z="+(int)z);
}
public void onAccuracyChanged(Sensor s, int accuracy) {
}
};
//注册listener,第三个参数是检测的精确度
sensorMgr.registerListener(lsn, sensor,
SensorManager.SENSOR_DELAY_GAME);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值