Hi Everyone,
I found one example of the same here
http://code.google.com/android/samples/ApiDemos/src/com/example/android/apis/view/MapViewCompassDemo.html

However, as we rotate the mapview, the way we move the map also
changes. For example things work fine when the cell phone is pointing
towards north, the movement, I turn it to south, left move become
right move.

Infact the main issue is we wanted to rotate on the map and not the
overlay like zoom controls or touch behavior.

Thanks,
Rohit


On Jan 2, 3:49 pm, Rohit Ghatol <[email protected]> wrote:
> I tried this, but it did not work
> Here is my code, can some one help me with this
>
> package com.rohit.test;
>
> import android.content.Context;
> import android.graphics.Canvas;
> import android.hardware.SensorListener;
> import android.hardware.SensorManager;
> import android.os.Bundle;
> import android.util.Config;
> import android.util.Log;
>
> import com.google.android.maps.MapActivity;
> import com.google.android.maps.MapView;
>
> public classCompassextends MapActivity {
>
>         private static final String TAG = "Compass";
>
>         private SensorManager mSensorManager;
>         private float[] mValues = null;
>         private SampleView mView;
>
>         private final SensorListener mListener = new SensorListener() {
>
>                 public void onSensorChanged(int sensor, float[] values) {
>                         if (Config.LOGD)
>                                 Log.d(TAG, "sensorChanged (" + values[0] + ", 
> " + values[1]
>                                                 + ", " + values[2] + ")");
>                         if (mView != null) {
>                                 mValues = values;
>                                 mView.invalidate();
>
>                         }
>                 }
>
>                 public void onAccuracyChanged(int sensor, int accuracy) {
>                         // TODO Auto-generated method stub
>
>                 }
>         };
>
>         @Override
>         protected void onCreate(Bundle icicle) {
>                 super.onCreate(icicle);
>                 mSensorManager = (SensorManager) getSystemService
> (Context.SENSOR_SERVICE);
>                 mView = new SampleView(this,"<<my key>>");
>                 mView.setClickable(true);
>
>                 setContentView(mView);
>                 if (Config.LOGD)
>                         Log.d(TAG, "onCreate");
>         }
>
>         @Override
>         protected void onResume() {
>                 if (Config.LOGD)
>                         Log.d(TAG, "onResume");
>                 super.onResume();
>                 mSensorManager.registerListener(mListener,
>                                 SensorManager.SENSOR_ORIENTATION,
>                                 SensorManager.SENSOR_DELAY_GAME);
>         }
>
>         @Override
>         protected void onStop() {
>                 if (Config.LOGD)
>                         Log.d(TAG, "onStop");
>                 mSensorManager.unregisterListener(mListener);
>                 super.onStop();
>         }
>
>         public class SampleView extends MapView {
>
>                 public SampleView(Context context,String apiKey) {
>                         super(context,apiKey);
>
>                 }
>                 @Override
>                 protected void dispatchDraw(Canvas canvas) {
>
>                         if (mValues != null) {
>                                 int py=canvas.getClipBounds().bottom/2;
>                                 int px=canvas.getClipBounds().right/2;
>                                 canvas.rotate(-mValues[0],px,py);
>                         }
>                         super.dispatchDraw(canvas);
>                 }
>
>         }
>
>         @Override
>         protected boolean isRouteDisplayed() {
>                 // TODO Auto-generated method stub
>                 return false;
>         }
>
> }
>
> On Dec 17 2008, 3:20 am, David C <[email protected]> wrote:
>
> > I just received this response:
>
> > "Override a ViewGroup and apply the rotation indispatchDraw()."
>
> > Thanks Romain!
>
> > On Dec 8, 12:43 pm, David C <[email protected]> wrote:
>
> > > "Bump"....  can anyone provide insight here?
>
> > > Did theMapViewonDraw() API change to "final" at some point? If the
> > > recommended method to rotate aMapViewis canvas.rotate() how can that
> > > be achieved if not via onDraw()?
>
> > > Personally I'd prefer to see theMapViewAPI extended to support
> > > "setBearing()" or something similar, but nothing like that exists.
> > > <sigh>
>
> > > On Dec 7, 11:23 am, David C <[email protected]> wrote:
>
> > > > A few threads have discussed using canvas.rotate() as a means to
> > > > rotate aMapView. However, onDraw() is declared "final" forMapView
> > > > and so can't be over-ridden. Is there an alternative way to manipulate
> > > > theMapViewcanvas than from onDraw()?
>
> > > > Thanks,
> > > > David
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to