我正在尝试使用R.drawable.mapPersonMarker
获取可绘制的ID
这些是导入语句:
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
这是我从以下位置访问它的方法:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener {
public void centreOnLoc(Location location, String title) {
LatLng userLatLng = new LatLng(location.getLatitude(), location.getLongitude());
mMap.clear();
mMap.addMarker(new MarkerOptions().position(userLatLng).title(title).icon(R.drawable.mapPersonMarker));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(userLatLng, 18));
}
尝试使用BitmapDescriptorFactory.fromResource(R.drawable.mapPersonMarker)。
mMap.addMarker(new MarkerOptions().position(userLatLng).title(title).icon(BitmapDescriptorFactory.fromResource(R.drawable.mapPersonMarker)));
发现问题:可绘制资源名称为“ mapPersonMarker”。基于文件的资源名称只能包含小写的a-z,0-9或下划线。将文件重命名为mappersonmarker可以解决此问题。