0

我正在学习如何从琐碎的任务开始为 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 上看到的只是一个黑屏和一个白框(我的问题)

我错过了什么吗?还是做错了什么?

4

2 回答 2

0

如果您尝试绘制具有 alpha 的位图,则需要使用带有 alpha 的绘图:

Paint paint = new Paint();
paint.setAlpha(100);
canvas.drawBitmap(spr.getBitmap(), spr.getX(), spr.getY(), paint);

希望这可以帮助 :)

于 2013-10-05T03:27:19.850 回答
0

检查文档:

http://developer.android.com/reference/android/graphics/Bitmap.html#eraseColor(int)

public void eraseColor (int c) 用指定的颜色填充位图的像素。

使用 Bitmap.setPixels 或 Bitmap.setPixel 替换像素的颜色。是的,这意味着您必须编写一个方法来遍历位图上的每个像素或像素块,并检查您是否想用 WHITE 替换它。

于 2013-10-05T06:22:45.377 回答