2011-01-06 8 views
0

私は、次のコードを使用して状態(私の拡張OverlayItemクラス内の例えばフィールド)に基づいてマーカーを引くことができています:状態に応じてマーカーアイコンを正しく変更しますか?

@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);  
} 

予想通りこれは、(例えばActual markerのようなマーカーを引く)動作します。マーカーの輝きは私が達成したい効果です。上記のコードに従って、それは2つのレイヤー、すなわちSchool MarkerMarker Overlayの2つのレイヤー、すなわち(例えば)Drawableを介して生成されます。

グローのサイズが通常のマーカーイメージと同じであることを確認して、結果としてDrawableが再スケールされないようにする必要がありました(マーカーイメージサイズは32x37ピクセルです)。

しかし、私はを目指していますが、実際にはより大きなグロー(つまり、実際に大きな画像をもたらすであろう)である、のような:alt text

どのように使用してこのように(大きな輝きを生み出す描画可能をレンダリングすることができます実際には通常のマーカー画像より大きい画像)ではなく、は拡大/縮小されたノーマルマーカになりますか?それは実現可能ですか?

ありがとうございます、私は必要に応じて追加の詳細を提供することができます。

答えて

0

別のマーカー画像を使用してください。 Here is a sample projectは、ユーザの入力に基づいてマーカ画像を変更することを示している。

+0

入力いただきありがとうございます、私はそれを達成する方法を知っています、上記の私のコードを記載しました。私は、30以上のマーカーのうちのもう1つのバージョン(Photoshop Actionsなど)を作成せずにグローを適用する方法があるかどうか疑問に思っていたため、「res/drawable」ディレクトリでオーバーヘッドが増えました。 – Dr1Ku

+1

@ Dr1Ku:大きな画像を保持するのに十分な、ベース画像の関連するエッジの周りに透明なピクセルを追加します。適切なサイズのグローを 'LayerListDrawble'で適用します。 – CommonsWare

関連する問題