无法从MapActivity访问可绘制对象

问题描述 投票:0回答:2

我正在尝试使用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));
    }
java android android-studio nullpointerexception
2个回答
0
投票

尝试使用BitmapDescriptorFactory.fromResource(R.drawable.mapPersonMarker)。

mMap.addMarker(new MarkerOptions().position(userLatLng).title(title).icon(BitmapDescriptorFactory.fromResource(R.drawable.mapPersonMarker)));

0
投票

发现问题:可绘制资源名称为“ mapPersonMarker”。基于文件的资源名称只能包含小写的a-z,0-9或下划线。将文件重命名为mappersonmarker可以解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.