如何显示可绘制对象中的自定义背景图像而不是绘图颜色



我有以下代码,这是我从YouTube教程中得到的,用于绘制画布:

(https://www.youtube.com/watch?v=6NBt36fO0iw):

@Override
protected void onDraw(Canvas canvasporch) {
    canvasporch.drawColor(Color.BLACK);
    for (int i = temps.size() - 1; i >= 0; i--){
        temps.get(i).onDraw(canvasporch);
    for (Sprite sprite : sprites){          
    sprite.onDraw(canvasporch);

这工作得很好。唯一的问题是,我想将可绘制文件夹中的图像显示为精灵的背景,而不是将黑色作为背景。我尝试过使用 drawBitmap(),但我似乎无法让它工作。谢谢。

1)创建一个成员变量来存储位图:

Bitmap spriteBackground;

2) 在 onCreate()(或其他一些初始化函数)中,从可绘制对象加载位图:

spriteBackground = BitmapFactory.decodeResource(getResources(), R.drawable.sprite_background);

3) 在 onDraw() 中使用 drawBitmap() 绘制位图:

canvasporch.drawBitmap(spriteBackground, 0, 0, null);

如果要缩放位图以覆盖画布,请在加载时使用 createScaledBitmap 对其进行缩放(使用更多内存)或将矩阵转换应用于画布(可能更慢)。

另一种方法是将画布边界传递给 drawBitmap(),如下所示:

canvasporch.drawBitmap(spriteBackground, null, canvasporch.getClipBounds(), null);

最新更新