2016-03-30 8 views
2

The custom map markers are transparent, I want them to be opaque.Android: Iconify Markierungssymbol in Google Map Fragmente transparent ist

Wie man im Bild oben sehen kann, wird die benutzerdefinierten Kartenmarkierungen aus der Iconify Bibliothek, die ich auf einem SupportMapFragment erstellen sind transparent. Wie kann ich diese Marker opak machen?

Hier ist, wie ich die Markierungen auf der Karte ziehen:

IconDrawable icon = new IconDrawable(getActivity(), Iconify.IconValue.fa_map_marker) 
    .colorRes(R.color.birthEvent) 
    .sizeDp(40); 
icon.setAlpha(255); 

Canvas canvas = new Canvas(); 
Bitmap bitmap = Bitmap.createBitmap(icon.getIntrinsicWidth(), icon.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); 
canvas.setBitmap(bitmap); 
icon.draw(canvas); 
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap); 

MarkerOptions marker = new MarkerOptions() 
    .icon(bitmapDescriptor); 
googleMap.addMarker(marker); 

Hier ist, wie die Farbe birthEvent in res/values/colors.xml definiert:

<resources> 
    <color name="birthEvent">#FD3C3C</color> 
</resources> 
+0

icon.setAlpha (255); Entferne diese Zeile. – dex

+0

@dex Entfernen 'icon.setAlpha (255)' hat nichts geändert, die Marker sind immer noch so transparent wie zuvor. – colelemonz

+0

können Sie bitte den Wert der Farbe birthEvent angeben? – dex

Antwort

1

Die markerOptions.alpha() Verfahren festgelegt werden sollte als Float zwischen 0.0 und 1.0, wobei 0 vollständig transparent und 1 vollständig undurchsichtig ist. Also versuchen Sie es als Schwimmer, um zwischen 0 bis 1.

Oder Sie können diese blog auf überprüfen, wie die Android Iconify in MapFragment einzustellen.

Hier ist der Beispielcode.

public BitmapDescriptor getCustomMarker(IconValue iconValue) { 
    IconDrawable id = new IconDrawable(getBaseContext(), iconValue) { 
     @Override 
     public void draw(Canvas canvas) { 
      // The TextPaint is defined in the constructor 
      // but we override it here 
      TextPaint paint = new TextPaint(); 
      paint.setTypeface(Iconify.getTypeface(getBaseContext())); 
      paint.setStyle(Paint.Style.STROKE_AND_FILL); 
      paint.setTextAlign(Paint.Align.CENTER); 
      paint.setUnderlineText(false); 

      // If you need a custom color specify it here 
      paint.setColor(Color.BLACK); 

      paint.setAntiAlias(true); 
      paint.setTextSize(getBounds().height()); 
      Rect textBounds = new Rect(); 
      String textValue = String.valueOf(iconValue.character()); 
      paint.getTextBounds(textValue, 0, 1, textBounds); 
      float textBottom = (getBounds().height() - textBounds.height())/2f + textBounds.height() - textBounds.bottom; 
      canvas.drawText(textValue, getBounds().width()/2f, textBottom, paint); 
     } 

    }.actionBarSize(); 
    Drawable d = id.getCurrent(); 
    Bitmap bm = Bitmap.createBitmap(id.getIntrinsicWidth(), id.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); 
    Canvas c = new Canvas(bm); 

    d.draw(c); 

    return BitmapDescriptorFactory.fromBitmap(bm); 
} 
+0

Ich verwendete den zweiten Teil des [blog] (http://blog.honorato.org/fontawesome-icons-in-androids-mapfragment/), den Sie zum Zeichnen gefüllter Objekte zur Verfügung gestellt haben. Vielen Dank! – colelemonz