Как я могу использовать пользовательский растровый рисунок для точки «вы здесь» в MyLocationOverlay?

Я налил документы и не смог понять это. Возможно ли это?

Пожалуйста, ознакомьтесь с этим

Похоже, что правильным механизмом для этого является расширение MyLocationOverlay, а затем переопределение метода drawMyLocation ().

Следующее использует стрелку, чтобы показать, где «вы» и каким образом «вы» указываете:

 package com.example; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Point; import android.location.Location; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapView; import com.google.android.maps.MyLocationOverlay; public class MyCustomLocationOverlay extends MyLocationOverlay { private Context mContext; private float mOrientation; public MyCustomLocationOverlay(Context context, MapView mapView) { super(context, mapView); mContext = context; } @Override protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) { // translate the GeoPoint to screen pixels Point screenPts = mapView.getProjection().toPixels(myLocation, null); // create a rotated copy of the marker Bitmap arrowBitmap = BitmapFactory.decodeResource( mContext.getResources(), R.drawable.arrow_green); Matrix matrix = new Matrix(); matrix.postRotate(mOrientation); Bitmap rotatedBmp = Bitmap.createBitmap( arrowBitmap, 0, 0, arrowBitmap.getWidth(), arrowBitmap.getHeight(), matrix, true ); // add the rotated marker to the canvas canvas.drawBitmap( rotatedBmp, screenPts.x - (rotatedBmp.getWidth() / 2), screenPts.y - (rotatedBmp.getHeight() / 2), null ); } public void setOrientation(float newOrientation) { mOrientation = newOrientation; } } 

Я сделал несколько изменений в коде previuos, чтобы заставить его работать правильно, потому что стрелка указывала на неправильное направление и вращалась в противоположном направлении.

Я изменился

 matrix.postRotate(mOrientation); 

для

 matrix.postRotate(this.getRotation()); 

и добавил к концу:

 mapView.postInvalidate(); 

перерисовать стрелку при ее изменении

  • В чем разница между List и ArrayList?
  • Файл Android FileInputStream для чтения () в String
  • Преобразование Json Array в обычный Java-массив
  • Прочитайте stream дважды
  • Отправить HTTP-запрос GET с заголовком
  • Имя classа Java, содержащее знак доллара, не может быть скомпилировано, если присутствует внутренний class
  • Объем переменной, объявленной внутри цикла for
  • Форма слишком большого исключения
  • почему переменная экземпляра суперclassа не переопределяется в методе подclassа
  • FirebaseListAdapter не подталкивает отдельные элементы для приложения для чата - Firebase-Ui 3.1
  • Что такое WindowInsets?
  • Давайте будем гением компьютера.