私は、次のコードを使用して状態(私の拡張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);
}
予想通りこれは、(例えばのようなマーカーを引く)動作します。マーカーの輝きは私が達成したい効果です。上記のコードに従って、それは2つのレイヤー、すなわちとの2つのレイヤー、すなわち(例えば)Drawable
を介して生成されます。
グローのサイズが通常のマーカーイメージと同じであることを確認して、結果としてDrawable
が再スケールされないようにする必要がありました(マーカーイメージサイズは32x37ピクセルです)。
しかし、私はを目指していますが、実際にはより大きなグロー(つまり、実際に大きな画像をもたらすであろう)である、のような:
どのように使用してこのように(大きな輝きを生み出す描画可能をレンダリングすることができます実際には通常のマーカー画像より大きい画像)ではなく、は拡大/縮小されたノーマルマーカになりますか?それは実現可能ですか?
ありがとうございます、私は必要に応じて追加の詳細を提供することができます。
入力いただきありがとうございます、私はそれを達成する方法を知っています、上記の私のコードを記載しました。私は、30以上のマーカーのうちのもう1つのバージョン(Photoshop Actionsなど)を作成せずにグローを適用する方法があるかどうか疑問に思っていたため、「res/drawable」ディレクトリでオーバーヘッドが増えました。 – Dr1Ku
@ Dr1Ku:大きな画像を保持するのに十分な、ベース画像の関連するエッジの周りに透明なピクセルを追加します。適切なサイズのグローを 'LayerListDrawble'で適用します。 – CommonsWare