0

これはSpriteクラスでの私のコードです:

public class Sprite {
    int x, y, vx, vy;
    private Bitmap texture;

    public Sprite(Bitmap texture) {
        this.texture = texture;
    }

    public int getWidth() {
        return texture.getWidth();
    }

    public int getHeight() {
        return texture.getHeight();
    }

    public void draw(Canvas c) {
        c.drawBitmap(texture, x, y, null);
    }
}

そしてbackground.draw(c);背景を描きます。でも背景が画面より大きい…

画面のサイズに合わせて拡大縮小するにはどうすればよいですか?

4

1 に答える 1

2

ビットマップを描画するときに、ビットマップの左と上のプロパティのみを設定しています。スケーリングするには、次のように、幅と高さを指定してオーバーロードの drawBitmap メソッドを呼び出します。

あなたにアイデアを与えるには:

public class Sprite {
    int width, height;
    private Bitmap texture;

    public Sprite(Bitmap texture, width, height) {
        this.texture = texture;
        this.width = width;
        this.height = height;
    }

    public int getWidth() {
        return width;
    }

    public int getHeight() {
        return height;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public void draw(Canvas c) {
        c.drawBitmap(texture, null, new RectF(0, 0, width, height), null);
    }
}

クラス Sprite を作成するアクティビティでは、次のようなことを行う必要があります。

Display display = getWindowManager().getDefaultDisplay();
Sprite sprite = new Sprite(bitmap, display.getWidth(), display.getHeight())
于 2012-08-07T12:02:42.930 に答える