0

我正在尝试做一些我认为很简单但显然不是的事情!

我正在制作一个简单的应用程序来学习 Android 游戏开发。此刻,用户点击屏幕并显示一个精灵。精灵只是一个纯白色的正方形。我想在代码中更改它。

我想我被 C#/XNA 宠坏了,如果一个精灵是纯白色的,你可以在 draw 方法中设置颜色。即使我使用了绘画功能,这似乎也不起作用。我做了一些研究,但所有的解决方案似乎都不是我想要的,而且也很复杂。如果我找不到确切的解决方案,我希望找到至少更简单的东西。到目前为止,这是相关的代码:

从观点来看:

    private Sprite createSprite(int resouce) {
    Bitmap bmp = BitmapFactory.decodeResource(getResources(), resouce);
    return new Sprite(this, bmp, touchX, touchY);

视图 onDraw 方法:

        if (touched == true)
    {
        canvas.drawColor(colors[nextColor]);
        lastColor = colors[nextColor];

        //add bitmap to array
        sprites.add(createSprite(R.drawable.test));
        //draw sprites
        for (Sprite sprite : sprites) {
            sprite.onDraw(canvas);
        }

sprite类的相关代码:

    private Paint paint = new Paint();

public Sprite(DaphnyView daphView, Bitmap bmp, int positionX, int positionY) {
    width = bmp.getWidth();
    height = bmp.getHeight();
    DaphView = daphView;
    Bmp = bmp;
    PositionX = positionX;
    PositionY= positionY;
    paint.setColor(Color.GREEN);
}

public void onDraw(Canvas canvas) {
    canvas.drawBitmap(Bmp, PositionX, PositionY, paint);

}

如果有人可以帮助我或至少为我指出一个好的起点,那将是一个很大的帮助。谢谢!

4

1 回答 1

1

我找到了一个解决方案,方法是创建一个新的画布来修改位图,然后将这个修改后的位图传递回原始画布。

于 2012-12-17T09:00:08.360 回答