3
我创建了自定义视图,并试图在其上绘制一个整数(颜色)数组。Android:无法在视图上绘制位图对象
这画一个红色的屏幕:
@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);
}
所不同的是在那些最后一行(S)。第二种做事方式有什么问题?我以某种方式错误地创建了Bitmap对象?
啊,就是这样。我没有考虑这个alpha值,因为显然当使用第一种方法时,我只是将'false'传递给hasAlpha参数,并没有问题。 – Ricket