2011-01-06 12 views
0

Ich bin der Lage, eine Markierung auf einem Zustand (zum Beispiel ein Feld in meiner erweiterten OverlayItem Klasse) mit dem folgenden Code basiert ziehen:Change Marker Symbol je nach Zustand richtig?

@Override 
public Drawable getMarker(int pStateBitset) 
{ 
    Drawable currentMarker = super.getMarker(pStateBitset); 

    Drawable[] toDrawLayers; 
    if (mSelected) 
    { 
    BitmapDrawable overlay = (BitmapDrawable) mSELECTED_OVERLAY; 
    overlay.setAntiAlias(true); 

    toDrawLayers = new Drawable[] { currentMarker, overlay }; 
    } 
    else 
    { 
    toDrawLayers = new Drawable[] { currentMarker }; 
    } 

    return new LayerDrawable(toDrawLayers);  
} 

Dies funktioniert wie erwartet (Zeichnung einen Marker wie Actual marker). Das Leuchten des Markers ist der Effekt, den ich erreichen möchte. Gemäß dem obigen Code wird es über zwei Schichten Drawable s erzeugt, nämlich (zum Beispiel) School Marker und Marker Overlay.

Ich musste sicherstellen, dass die Größe des Glühens die gleiche wie das normale Markerbild ist, so dass die resultierende Drawable nicht rescale (Marker Bildgröße ist 32x37 px).

jedoch, was ich bin mit dem Ziel ist in der Tat ein größeres Glühen (das wäre in der Tat ein größeres Bild ergeben), wie zum Beispiel: alt text

Wie kann ich einen ziehbar machen, die einen größeren Schein (so ergibt sich mit ein Bild, das tatsächlich größer als das normale Markerbild ist) und ergibt nicht einen skalierten/in der Größe veränderten normalen Marker? Ist das machbar?

Vielen Dank im Voraus, ich kann bei Bedarf zusätzliche Details zur Verfügung stellen.

Antwort

0

Verwenden Sie ein anderes Markerbild. Here is a sample project zeigt die Änderung des Markerbildes basierend auf Benutzereingaben.

+0

Danke für die Eingabe, ich weiß, wie das erreicht werden kann, habe ich meinen Code oben aufgeführt. Ich habe mich gefragt, ob es eine Möglichkeit gibt, das Glühen anzuwenden, ohne eine weitere Version (über Photoshop Actions usw.) der über 30 Marker erstellen zu müssen, was zu einem höheren Overhead im "res/drawable" -Dir führt. – Dr1Ku

+1

@ Dr1Ku: Fügen Sie mehr transparente Pixel um die relevanten Kanten Ihres Basisbildes hinzu, genug, um Ihr größeres Leuchten zu erhalten. Wenden Sie ein angemessen großes Glühen über eine 'LayerListDrawble' an. – CommonsWare

Verwandte Themen