2016-07-21 2 views
0

마커 용 사용자 정의 아이콘을 설정하려고하는데, Android 4.1.2를 실행하는 휴대 전화와 잘 작동하지만 삼성 갤럭시로 내 앱을 테스트했습니다. tabS2 6.0.1 실행하고 아이콘을 찾을 수없는 것 같습니다. 나는 안드로이드 산들 바람에도 잘 작동하는, 마커 당신과 함께 내 코드를 공유하고있어안드로이드 설정 사용자 정의 아이콘으로 마쉬 멜로에서 null을 반환합니다.

telephoneM = deviceMap.addMarker(new MarkerOptions().position(telephonePos).title(getString(R.string.telephonePos).icon(BitmapDescriptorFactory.fromResource(R.drawable.temp_bts_icon)); 

답변

0

: 다음은 내 코드

@Override 
public void onMapReady(GoogleMap googleMap) { 
    deviceMap = googleMap; 
    deviceMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
     @Override 
     public void onMapClick(LatLng point) { 
      if(customM != null) 
       customM.remove(); 
      customM = deviceMap.addMarker(new MarkerOptions().position(point).icon(bmD).title(getString(R.string.customPos))); 
     } 
    }); 
    if (deviceMap != null) { 
     try{ 
      Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.temp_bts_icon); 
      deviceM = deviceMap.addMarker(new MarkerOptions().position(devicePos).title(getString(R.string.devicePos)) 
        .icon(BitmapDescriptorFactory.fromBitmap(bm))); 
      bm = BitmapFactory.decodeResource(getResources(), R.drawable.phone); 
      telephoneM = deviceMap.addMarker(new MarkerOptions().position(telephonePos).title(getString(R.string.telephonePos)) 
        .icon(BitmapDescriptorFactory.fromBitmap(bm))); 
     }catch (Exception e){ 
      Toast.makeText(Globals.MainActivity, "Error retrieving icons", Toast.LENGTH_SHORT).show(); 
      deviceM = deviceMap.addMarker(new MarkerOptions().position(devicePos).title(getString(R.string.devicePos)) 
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))); 
      telephoneM = deviceMap.addMarker(new MarkerOptions().position(telephonePos).title(getString(R.string.telephonePos)) 
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))); 
     } 

     updateDeviceMarker(); 
     deviceMap.getUiSettings().setMyLocationButtonEnabled(true); 
     deviceMap.getUiSettings().setZoomGesturesEnabled(true); 
     deviceMap.getUiSettings().setZoomControlsEnabled(true); 
     deviceMap.getUiSettings().setCompassEnabled(true); 
     deviceMap.getUiSettings().setAllGesturesEnabled(true); 
     deviceMap.moveCamera(CameraUpdateFactory.newLatLngZoom(deviceM.getPosition(), 1f)); 
    } 
} 

나는 또한이 일을 시도있다. resouces에서

:

map.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory. 
       fromResource(R.drawable.xyz))); 

비트 맵에서 :

Bitmap markerBitmap = Bitmap.createBitmap(px, px, Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(markerBitmap); 
Drawable shape = ResourcesCompat.getDrawable(getResources(), R.drawable.xyz, null); 
shape.setBounds(0, 0, markerBitmap.getWidth(), markerBitmap.getHeight()); 
shape.draw(canvas); 
map.addMarker(new MarkerOptions().position(newLatLng(lastLocation.getLatitude(), 
      lastLocation.getLongitude())).icon(BitmapDescriptorFactory.fromBitmap(markerBitmap))); 
+0

감사 남자! 두 번째 작업 중입니다! 어쨌든 자원에서 직접 아이콘을 설정하는 것이 효과가없는 이유에 대한 단서가 있습니까? 그냥 이해 –

+0

나는 당신의 코드를 시도, 당신은 두 개의 닫는 괄호, 하나의 제목과 끝에 하나가 누락되었습니다. 하지만 그 후에도 Android Marshmallow에서 작동해야합니다. 어쩌면 어떤 끈질긴 문제 일지 모르지만 나는 정말로 모른다. – gabodroid

관련 문제