Android MapView的怪异阴影行为

时间:2010-08-05 15:38:03

标签: android android-mapview shadow itemizedoverlay

我通过继承ItemizedOverlay在MapView上放置几个标记。问题是我传递给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上的阴影不是它应该是简单的灰色,半透明叠加。相反,滤色器和文本也应用于阴影。关于如何避免这个问题的任何建议?

0 个答案:

没有答案