Странное поведение теней для Android MapView - PullRequest
1 голос
/ 05 августа 2010

Я помещаю несколько маркеров в MapView, создав подкласс ItemizedOverlay. Проблема в том, что маркер, который я передаю элементу ItemizedOverlay, является пользовательским Drawable. То есть я вложил в класс «Drawable» и переписал метод draw (). Смысл этого состоял в том, чтобы добавить цветной фильтр к Drawable и добавить пользовательский текст:

public void draw(Canvas canvas) {
    String[] colorComps = color.split(",");
    baseDrawable.mutate().setColorFilter(Color.rgb(Integer.valueOf(colorComps[0]),
                                                   Integer.valueOf(colorComps[1]),
                                                   Integer.valueOf(colorComps[2])),
                                         PorterDuff.Mode.MULTIPLY);
    baseDrawable.draw(canvas);

    Paint textPaint = new Paint();
    textPaint.setTextAlign(Paint.Align.CENTER);
    textPaint.setColor(Color.WHITE);
    textPaint.setAntiAlias(true);
    textPaint.setTextSize(12);
    textPaint.setTypeface(Typeface.DEFAULT);
    int textX = getIntrinsicWidth()/2 - 1 + baseDrawable.getBounds().left;
    int textY = getIntrinsicHeight()/2 + baseDrawable.getBounds().top;
    canvas.drawText(ID, textX, textY, textPaint);
}

Проблема в том, что когда я делаю это, тень на MapView не является простым серым полупрозрачным наложением, каким оно должно быть. Скорее, цветовой фильтр и текст также применяются к тени. Любые предложения о том, как избежать этой проблемы?

...