Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 296
Max Frai Avatar asked Dec 10 '12 22:12

Max Frai


2 Answers

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

like image 173
Alecs Avatar answered Oct 01 '22 04:10

Alecs


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.

like image 27
devunwired Avatar answered Oct 01 '22 06:10

devunwired