Android MapView,如何在按下按钮时更改位置/标记

时间:2019-11-18 20:38:23

标签: java android

在我的应用程序中,我允许用户输入一个纬度/经度,并且希望用户在搜索视图中按Enter时,我的搜索片段中的地图视图可以更新位置。我似乎找不到有关如何更新到该位置的任何信息。一旦创建片段,就会调用OnMapReady,但是我无法弄清楚如何在单击searchview时更新位置。我已经阅读了mapview开发人员文档,似乎找不到有关如何更新标记/位置的任何信息。对我来说,使用mapfragment并在其searchfragment中嵌套一个mapfragment会更好。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

当您从searchview中点击搜索选项时,可以使用此方法来获取提交事件。 您也可以从this Webpage

对此进行深入了解
 SearchView.OnQueryTextListener() {
  @Override public boolean onQueryTextSubmit(String s) {
       //Perform task that you want 
    return false;
  }
  @Override public boolean onQueryTextChange(String s) {
    return false;
  }
});

现在,您可以使用以下代码在MAP上添加标记,其中Latlng是Latlng的对象。

mMap.addMarker(new MarkerOptions().position(Latlng).title("Marker's Title")
                    .icon(BitmapDescriptorFactory.fromBitmap(getColorCompletedpin())));

函数getColorCompletepin()

 final public Bitmap getColorCompletedpin()    {
        Bitmap ob = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_pin);
        Bitmap obm = Bitmap.createBitmap(ob.getWidth(), ob.getHeight(), ob.getConfig());
        Canvas canvas = new Canvas(obm);
        Paint paint = new Paint();
        paint.setColorFilter(new PorterDuffColorFilter(Color.parseColor("#c4ff15"), PorterDuff.Mode.SRC_ATOP));
        canvas.drawBitmap(ob, 0f, 0f, paint);
        return obm;
    }