首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

google地图中添加指南针图标

2012-09-24 
googlemap中添加指南针图标代码很简单:/** ** @date Aug 29, 2012 * @fileName CompassView.java * */publ

googlemap中添加指南针图标
代码很简单:

/** *  * @date Aug 29, 2012 * @fileName CompassView.java * */public class CompassView extends View implements SensorEventListener {private static final String TAG="CompassView";private Paint mPaint = new Paint();    private Path mPath = new Path();private SensorManager sm;private float[] mValues;private MapView mapView;/** * @param context */public CompassView(Context context,MapView mapView) {super(context);this.mapView=mapView;sm = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);        mPath.moveTo(0, -12);        mPath.lineTo(-8, 15);        mPath.lineTo(0, 12);        mPath.lineTo(8, 15);        mPath.close();}public void register(){sm.registerListener(this,sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME);}public void unregister(){sm.unregisterListener(this);}public void addLayout(RelativeLayout layout){LayoutParams lp=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);layout.addView(this);}@Overrideprotected void onDraw(Canvas canvas) {Paint paint = mPaint;        canvas.drawColor(Color.TRANSPARENT);        paint.setAntiAlias(true);        paint.setColor(Color.TRANSPARENT);        paint.setStyle(Paint.Style.FILL);        if(MapManager.myGeoPoint!=null){        paint.setColor(Color.BLUE);        Projection projection = mapView.getProjection();         Point point = projection.toPixels(MapManager.myGeoPoint, null);        canvas.translate(point.x, point.y-10);        }        if (mValues != null) {        if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) {        canvas.rotate(-90);        }        if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {        }            canvas.rotate(-mValues[0]);        }        canvas.drawPath(mPath, mPaint);}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}@Overridepublic void onSensorChanged(SensorEvent event) {        mValues=event.values;        invalidate();}}

热点排行