最近准备对android平台应用进行研究,上网到处搜罗开发资料。闲来无事,就整合了感应器和图像动画功能,整了个指南针的应用
主要知识点:
1/ 全屏(可以通过XML文件进行描述,也可以通过代码进行控制):
styel.XML:
<style name="style_Fullscreen"> <item name="android:windowFullscreen">true</item> <item name="android:windowNoTitle">true</item></style>
Java Code:
this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
2/ 感应器运用
实现SensorListener接口
public class compass extends Activity implements SensorListener {private SensorManager sm = null;@Overridepublic void onStart() { Log.e(TAG, "Compass: onStart"); sm = (SensorManager) getSystemService(SENSOR_SERVICE);....
接收事件消息
public void onSensorChanged(int sensor, float[] values) { synchronized (this) { if (sensor == SensorManager.SENSOR_ORIENTATION) { Log.d(TAG, "onSensorChanged: " + sensor + ", x: " + values[0] + ", y: " + values + ", z: " + values); //... 下面就是对方位数据的处理... }}}public void onAccuracyChanged(int sensor, int accuracy) { Log.d(TAG, "onAccuracyChanged: " + sensor + ", accuracy: " + accuracy);}
3/ 动画效果(JAVA Code实现)
a.渐现渐隐
// 定义变量private AlphaAnimation myAnimation_Alpha;// 设置变量 myAnimation_Alpha=new AlphaAnimation(1.0f, 0.1f); myAnimation_Alpha.setDuration(3000); myAnimation_Alpha.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub } });
b.旋转效果/* 用于指南针罗盘旋转 */
// 定义变量private RotateAnimation myAni = null;// 设置变量 myAni = new RotateAnimation(DegressQuondam, fDegress, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); myAni.setDuration(300); myAni.setFillAfter(true); /* 为实现指南针效果,设置旋转后不还原原图 */ ImgCompass.startAnimation(myAni);