Max Frai
Max Frai

Reputation: 64326

White bitmap in android

I want to set home wallpaper with white bitmap:

    Bitmap bitmap = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(bitmap);
    canvas.drawColor(0xfff);

    WallpaperManager wall = WallpaperManager.getInstance(this);
    try {
        wall.setBitmap(bitmap);
    } catch (IOException e) {
        e.printStackTrace();
    }

And the wallpaper becomes black. What's wrong is here?

Upvotes: 8

Views: 15769

Answers (2)

Alecs
Alecs

Reputation: 2940

Just add bitmap.eraseColor(Color.WHITE); as second line

Upvotes: 23

devunwired
devunwired

Reputation: 63303

My first guess would be your color choice, assuming this is the value in your actual code and not edited.

Color ints in java take the form ARGB, so Color.WHITE is 0xFFFFFFFF, Color.BLUE is 0xFF0000FF, etc.

The color in your code (0xFFF) would expand to 0x00000FFF which is Blue with a little green mixed in, but the alpha channel is zero, so the Canvas is basically written with a transparent color.

If you are using standard colors, I would stick to the constants in the Color class as parameters here, but if you want to define the color yourself, remember to place the full color or use Canvas.drawRGB() instead.

Upvotes: 9

Related Questions