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