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

android 重力感应的使用

http://blog.csdn.net/pku_android/article/details/7438745
Android的传感器编程小结
http://www.cnblogs.com/nio-nio/archive/2009/10/23/1588610.html
Android方向传感器实践——自己动手做水平尺
http://blog.csdn.net/tinya0913/article/details/6095307
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/

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

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


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 Accelerometer04-22 23:54:43.003: D/debug(12091): AK8973 3-axis Magnetic field sensor04-22 23:54:43.003: D/debug(12091): AK8973 Orientation sensor04-22 23:54:43.003: D/debug(12091): CM3602 Proximity sensor04-22 23:54:43.003: D/debug(12091): CM3602 Light sensor04-22 23:54:43.003: D/debug(12091): Gravity Sensor04-22 23:54:43.003: D/debug(12091): Linear Acceleration Sensor04-22 23:54:43.013: D/debug(12091): Rotation Vector Sensor


st18i 传感器支持情况:
04-23 00:18:25.314: D/debug(8972): BMA150 accelerometer04-23 00:18:25.314: D/debug(8972): AK8975 Compass04-23 00:18:25.314: D/debug(8972): AK8975 Compass Raw04-23 00:18:25.314: D/debug(8972): AK8975 Magnetic Field04-23 00:18:25.314: D/debug(8972): APDS9702 Proximity04-23 00:18:25.314: D/debug(8972): Gravity Sensor04-23 00:18:25.314: D/debug(8972): Linear Acceleration Sensor04-23 00:18:25.314: D/debug(8972): Rotation Vector Sensor


引用 支持以下六种传感器:

加速度传感器 Accelerometer
地磁传感器 Magnetic field sensor
温度传感器 Temperature sensor
距离传感器 Proximity sensor
方向传感器 Orientation sensor
亮度传感器 Light sensor
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/



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


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


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



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

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

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


http://www.eoeandroid.com/thread-44154-4-1.html53楼

请教如何在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)
http://wanran.iteye.com/blog/1049401
引用
2.背景音乐的播放
3.mvc设计模式应用
4.sharedPerferenced数据保存
5.手机震动
6.基础的网络传输



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

引用 在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的值。


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);   }   }

更多相关文章

  1. 吹雪花demo,学习android传感器《IT蓝豹》
  2. Android_传感器综述
  3. Android7.0中文文档(API)-- LinearLayout.LayoutParams
  4. 【Android(安卓)笔记 五】 Android(安卓)Sensor感应器介绍(一)重力
  5. Android(安卓)禁止横竖屏切换
  6. Android学习指南之三十七:Android传感器编程
  7. android: layout_gravity VS android: gravity
  8. Android(安卓)传感器概述
  9. Android(安卓)screenOrientation 屏幕方向的设定与控制

随机推荐

  1. 在Fragment中使用BaiduMap SDK
  2. SQlite Android数据库的应用 Android SQL
  3. NDK Stack
  4. Android 显示隐藏状态栏
  5. android中横竖屏切换状态保持一致
  6. android原生分享图片失败的问题
  7. android的一些自定义控件
  8. NDK开发之环境的搭建和开发第一个NDK程序
  9. 【Android 应用开发】Android 开发环境下
  10. android滑动翻页主界面