6

我想用白色位图设置家庭壁纸:

    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();
    }

壁纸变成黑色。这里有什么问题?

4

2 回答 2

18

只需添加bitmap.eraseColor(Color.WHITE); 为第二行

于 2015-10-18T16:48:10.843 回答
8

我的第一个猜测是你的颜色选择,假设这是你实际代码中的值并且没有被编辑。

Java 中的颜色整数采用 ARGB 形式,因此Color.WHITEis 0xFFFFFFFFColor.BLUEis0xFF0000FF等。

您的代码 ( )中的颜色0xFFF将扩展0x00000FFF为蓝色,其中混入了一点绿色,但alpha通道为零,因此Canvas基本上是用透明颜色编写的。

如果您使用标准颜色,我会在Color这里坚持使用类中的常量作为参数,但如果您想自己定义颜色,请记住放置全色或使用Canvas.drawRGB()

于 2012-12-10T23:15:13.093 回答