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 ). 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) und .
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:
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.
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
@ 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