我正在学习如何使用琐碎的任务开始制作Android应用程序,例如在屏幕上绘制图形,但当我删除背景颜色(白色)时,它会删除整个图形并使其完全变白。
我的代码是:
public Sprite(int xx, int yy, InputStream is, boolean d){
x = xx;
y = yy;
Bitmap old = BitmapFactory.decodeStream(is);
b = old.copy(old.getConfig(), true);
b.eraseColor(Color.WHITE);
draw = d;
old.recycle();
RenderView.addSprite(this);
}
在我绘制图像的地方,代码是:
@Override
protected void onDraw(Canvas canvas){
canvas.drawRGB(0,0,0);
for (Sprite spr : sprites){
if (spr.getDraw()){
canvas.drawBitmap(spr.getBitmap(), spr.getX(), spr.getY(), null);
}
}
invalidate();
}
我在Android上看到的只是预期的黑屏和白盒子(我的问题)
我错过了什么吗?或做错了什么?
答案 0 :(得分:0)
如果您正在尝试绘制具有alpha的位图,则需要使用带alpha的绘图:
Paint paint = new Paint();
paint.setAlpha(100);
canvas.drawBitmap(spr.getBitmap(), spr.getX(), spr.getY(), paint);
希望这会有所帮助:)
答案 1 :(得分:0)
查看文档:
http://developer.android.com/reference/android/graphics/Bitmap.html#eraseColor(int)
public void eraseColor(int c)使用填充位图的像素 指定的颜色。
使用Bitmap.setPixels或Bitmap.setPixel替换像素的颜色。是的,这意味着你必须编写一个迭代位图上每个像素或像素块的方法,并检查是否要用WHITE替换它。