gpt4 book ai didi

android - 将地点标记图像覆盖在静态图像上 (ImageView)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:51 25 4
gpt4 key购买 nike

我有一个包含静态图像( map )的 ImageView,我想在用户点击的 map 上放置一个标记。

我注册了一个 OnTouchListener,它提供了点击的坐标,但我不知道如何在这个位置绘制。感谢任何想法。

谢谢你


这里有一个简单的解决方案。它可以工作,在用户在屏幕上按下的背景图像上放置一个红点。如果有人看到它有问题,请告诉我。谢谢,m

   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);
}
}

最佳答案

您需要使用 mapview.getProjection.toPixel() 方法将 lat/lng 值转换为屏幕像素

这是代码

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);

更多内容请查看我的帖子

how to display map in android with marker

关于android - 将地点标记图像覆盖在静态图像上 (ImageView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7525274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com