示例:Child类如何在Parent中访问Canvas?

时间:2012-01-10 21:17:01

标签: java android bitmap

有人能给我一个例子,说明子类如何访问父类的画布来绘制某些内容,即位图:

BitmapFactory.Options options = new BitmapFactory.Options();
    options.inPurgeable = true;
    Bitmap bitmap_explosion = BitmapFactory.decodeResource(context.getResources(),com.forwardapps.tanks.R.drawable.explosion, options);

context.drawBitmap(bitmap_explosion,x,y,null);

这就是我在孩子身上所拥有的,我所拥有的父母:

Explosion xplode = new Explosion(this._context, 50, 50);

我一直在寻找几个小时,没有运气。

1 个答案:

答案 0 :(得分:1)

您不会在代码中随机绘制位图。您需要将对象提交到某种类型的渲染视图。例如,你可能有:

public class Scene extends View{
  private List<Explosions> explosions = new ArrayList<Explosions>();
  @Override
  public void onDraw(){
     //obviously i have a concurrency issue here.. meh
     for (Explosions e:explosions){
     /// draw your explosions here

     }

  }

  public void addExplosion(Explosions x){
       explosions.add(x)
  }
}

当您致电添加爆炸时,请不要忘记致电postInvalidate让视图重新绘制自己。

但是为了最直接地回答你的问题,你希望你的子类实现Drawable,然后将画布从父类onDraw()方法传递给子类onDraw方法。 / p>