我在一个带有笔触颜色的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
是白色的,我的图标是圆的!
答案 0 :(得分:1)
您的代码看起来是正确的,请确保您的backgroundImage
从一开始就不透明。
如您所述,不同的屏幕分辨率有不同的资源文件夹,因此不同的文件可能会在不同的设备上产生不同的结果。