【发布时间】:2021-10-03 03:25:40
【问题描述】:
我正在 Android Studio 中实现地图,但是当我缩放标记时,它会转到错误的位置。
这是地图类,我创建了一个画布,然后转换为位图:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
private ActivityMapsBinding binding;
private Bitmap bm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bm = createImageRounded(getApplicationContext(), 80, 80, "S");
binding = ActivityMapsBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
ImageView imageView = (ImageView)findViewById(R.id.img);
LatLng sydney = new LatLng(-33.8688, 151.2093);
MarkerOptions mrk = new MarkerOptions().title("Sydney");
mrk.position(sydney);
mrk.icon(BitmapDescriptorFactory.fromBitmap(bm));
mrk.anchor(0.5f, 1);
mMap.addMarker(mrk);
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
public static Bitmap createImageRounded(Context context, int width, int height, String name)
{
Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
Paint paint = new Paint();
paint.setColor(Color.rgb(62, 176, 220));
paint.setStrokeWidth(10);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
canvas.drawCircle(30, 30, 10, paint);
return output;
}
}
非常感谢您的帮助
【问题讨论】:
标签: java android google-maps