سؤال

هل يمكن لأي شخص مساعدتي في كيفية تدوير رأس السهم في خريطة Google V2؟ لقد رأيت أنه في Nevigation ، يدور رأس السهم إلى الاتجاه الذي نواجهه. أريد تنفيذ ذلك على تطبيقي. أنا أحمر markerOption.rotation(rotation) هذا يبدو ثابتا. أريد تدوير السهم ديناميكيًا عندما أقوم بتدوير الهاتف.

هل كانت مفيدة؟

المحلول

كنت قادرا على القيام بذلك. من السهل جدا. أدناه هو كيف. هذا هو قراءة المستشعر والحصول على اتجاه الهاتف.

/**
 * Initialize the sensor manager.
 */
private void setupSensorManager() {
    mSensorManager = (SensorManager) mContext
            .getSystemService(Context.SENSOR_SERVICE);
    mSensorManager.registerListener(mSensorListener,
            mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
            SensorManager.SENSOR_DELAY_NORMAL);

    Log.d(TAG, "SensorManager setup");
}

/**
 * The sensor event listener.
 */
SensorEventListener mSensorListener = new SensorEventListener() {

    @Override
    public void onSensorChanged(SensorEvent event) {
        mOrientation = event.values[0];
        Log.d(TAG, "Phone Moved "+mOrientation);
        draw(mOrientation);
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }
};

وهذا هو المكان الذي أدور فيه حقًا. تمت إضافة علامة بلدي بالفعل إلى الخريطة. وأنا الوصول إليها من فصل آخر.

public void draw(float angle) {
            // Take the relevant Marker from the marker list where available in map
    AndroidMapGoogleOverlayItem myself = (AndroidMapGoogleOverlayItem) getOverlayItem(0);

    if (myself == null) {
        return;
    }
    myself.getMarker().setRotation(mOrientation);  // set the orientation value returned from the senserManager
 }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top