gpt4 book ai didi

java - Android:无法将位图对象绘制到 View 上

转载 作者:太空狗 更新时间:2023-10-29 14:30:44 26 4
gpt4 key购买 nike

我创建了一个自定义 View ,并尝试在其上绘制一个整数(颜色)数组。

这会绘制一个红色屏幕:

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

int width = canvas.getWidth();
int height = canvas.getHeight();

int[] pixels = new int[width*height];
for(int i=0; i<pixels.length; i++) {
pixels[i] = 0xFF0000;
}

canvas.drawBitmap(pixels, 0, width, 0,0,width,height,false,null);
}

这不是:

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

int width = canvas.getWidth();
int height = canvas.getHeight();

int[] pixels = new int[width*height];
for(int i=0; i<pixels.length; i++) {
pixels[i] = 0xFF0000;
}

Bitmap bmp = Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(bmp, 0, 0, null);
}

区别在于最后一行。第二种做事方式有什么问题?我是否以某种方式错误地创建了 Bitmap 对象?

最佳答案

在您的第二个示例中,尝试将 pixels[i] = 0xFF0000; 更改为 pixels[i] = 0xFFFF0000; 您正在创建一个带有 alpha channel 的位图,因此您有以 AARRGGBB 格式指定颜色,以便正确解释它们。

关于java - Android:无法将位图对象绘制到 View 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7218956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com