我正在尝试做一些我认为很简单的事情,但显然事实并非如此!
我正在制作一个简单的应用来学习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);
}
如果有人能帮助我或者至少指出一个好的起点,那将是一个很大的帮助。谢谢!
答案 0 :(得分:1)
我通过创建一个新的画布来修改位图,然后将这个修改后的位图传回原画布,找到了解决方案。