Intereting Posts
Ошибка: типы строк не разрешены (в 'layout_height' со значением 'wrap content'). activity_main.xml Jar Mismatch Найдено 2 версии android-support-v4.jar в списке зависимостей Устройство LG G3, не распознанное Eclipse на Windows Вызов функции finish () из активности освободит мое пространство памяти? PushState в Android 4.0 Обрезать изображение на квадрат – Android Ошибка в отладке приложений для Android с помощью Xamarin Не удалось обновить файл в папке активов приложения Android. TextView перезапускает Marquee при изменении другого TextView в том же LinearLayout Как отключить события касания в SwipeRefreshLayout? Как импортировать ** некоторые ** части библиотеки guava в приложение Android (gradle) Android ListView thumb ScrollBar На каких аппаратных устройствах Android я должен проверить? Выбранный цвет фона списка элементов неожиданно повторно используется после прокрутки списка на планшетах Изменение состояния меню панели действий в зависимости от фрагмента

Наложение изображения маркера места на статичное изображение (ImageView)

У меня есть ImageView, содержащий статическое изображение (карта), и я хотел бы поместить маркер на карту, где пользователь нажимает.

У меня зарегистрирован OnTouchListener, и он обеспечивает координаты щелчка, но я не знаю, как рисовать в этом месте. Цените любые идеи.

Спасибо, м


Вот простое решение проблемы. Он работает, помещает красную точку на фоновое изображение, где пользователь нажимает на экран. Пожалуйста, дайте мне знать, есть ли у кого-нибудь проблемы с этим. Спасибо, м

import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.util.Log; import android.view.ViewTreeObserver; import android.widget.ImageView; public class MapPin extends ImageView { private static final String TAG = "MapPin"; private Paint mPaint; private int mBackgroundHeight; private int mBackgroundWidth; private float mPinX; private float mPinY; //private Context mContext; private void initMapPinView(){ mPaint = new Paint(); mPaint.setColor(Color.RED); } public MapPin (Context c){ super(c); initMapPinView(); } public MapPin (Context c, AttributeSet attrs){ super(c, attrs); initMapPinView(); } public void setPin (float x, float y){ mPinX = x; mPinY = y; } @Override public void onDraw(Canvas canvas){ super.onDraw(canvas); if (mPinX > 0 & mPinY > 0){ canvas.drawCircle(mPinX, mPinY, 5, mPaint); } } 

}

Вам нужно преобразовать значение lat / lng в пиксель экрана, используя метод mapview.getProjection.toPixel ()

Вот код

 Point screenPts = new Point(); mapView.getProjection().toPixels(defaultPoint, screenPts); // ---add the marker--- Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.drawable.cur_loc); canvas.drawBitmap(bmp, screenPts.x,screenPts.y, null); 

Для большей проверки моего сообщения

Как отображать карту в android с маркером