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

アルファ付きのビットマップを描画しようとしている場合は、アルファ付きのペイントを使用する必要があります。

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) 指定された Color でビットマップのピクセルを塗りつぶします。

Bitmap.setPixels または Bitmap.setPixel を使用して、ピクセルの色を置き換えます。はい、これは、ビットマップ上のすべてのピクセルまたはピクセルのブロックを反復処理し、それを WHITE に置き換えるかどうかを確認するメソッドを作成する必要があることを意味します。

于 2013-10-05T06:22:45.377 に答える