Android Canvas背景透明

时间:2014-11-14 09:59:23

标签: android bitmap icons maps android-canvas

我在一个带有笔触颜色的bitmap图标上画画。原点bitmap具有白色背景。在canvas的情况下,我用笔画(圆圈)绘制第二个bitmap

结果是,生成的位图在Nexus 7或Galaxy S2(均为hdpi)上具有透明背景。在其他设备上都很好(它仍然是白色)。

该位图用作gmaps的标记。

public Bitmap getMarkerBitmap(){
    Bitmap clusterBackground = backgroundImage.copy(Bitmap.Config.ARGB_8888, true);
    final Canvas canvas = new Canvas(clusterBackground);
    int xAnchor = (clusterBackground.getWidth() / 2)-(newIcon.getWidth() / 2);
    int yAnchor = (clusterBackground.getHeight()/2)-(newIcon.getHeight() / 2);
    final Point center = new Point(xAnchor,yAnchor);
    canvas.drawBitmap(newIcon, center.x, center.y,paint);
    return drawCircle(canvas,clusterBackground);
}

private Bitmap drawCircle(Canvas canvas, Bitmap bitmap){
    paint.setColor(color);
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeWidth(strokeWidthInPx);
    int centerX = bitmap.getWidth() / 2;
    int centerY = bitmap.getHeight() / 2;
    canvas.drawCircle(centerX,centerY,centerY-strokeWidthInPx/2,paint);

    return bitmap;
}

当我将背景设置为每个Paint对象的白色时,它可以正常工作,但整个Rect是白色的,我的图标是圆的!

1 个答案:

答案 0 :(得分:1)

您的代码看起来是正确的,请确保您的backgroundImage从一开始就不透明。 如您所述,不同的屏幕分辨率有不同的资源文件夹,因此不同的文件可能会在不同的设备上产生不同的结果。