有人能给我一个例子,说明子类如何访问父类的画布来绘制某些内容,即位图:
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);
我一直在寻找几个小时,没有运气。
答案 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>