我试图表现出子弹,当用户触摸屏幕的Android drawBitmap油漆
我在写这里的子弹
public Projectile(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
paint = new Paint();
bulletBitmap = BitmapFactory.decodeResource(context.getResources(),
R.drawable.bullet);
}
public interface ProjectileListener {
public void onProjectileChanged(float delta, float angle);
}
public void setProjectileListener(ProjectileListener l) {
listener = l;
}
public void setProjectileDirection(int x, int y, int size){
pos = new Rect(x, y, size, size);
invalidate();
}
protected void onDraw(Canvas c) {
c.drawBitmap(bulletBitmap, pos, pos, paint);
super.onDraw(c);
}
,并在这里把它
Projectile p = new Projectile(TowerAnimation.this);
p.setProjectileDirection(x, y, 50);
projectiles.add(p);
Canvas c = null;
p.onDraw(c);
但是我得到这条线上的错误
c.drawBitmap(bulletBitmap, pos, pos, paint);
我是否对drawBitmap做任何错误? 感谢
你会得到什么错误?您是否在以contxt为参数的构造函数中初始化'bulletBitmap'? – Blackbelt
java.lang.NullPointerException 07-22 16:03:23.231:E/AndroidRuntime(8347):\t at android.view.View.dispatchTouchEvent(View.java:5546) 07-22 16:03:23.231:E/AndroidRuntime(8347):\t at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1951) 07-22 16:03:23.231:E/AndroidRuntime(8347):\t at android.view.ViewGroup.dispatchTouchEvent(ViewGroup .java:1712) 07-22 16:03:23.231:E/AndroidRuntime(8347):\t at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957) 这里有一些其他 – NoobMe
这是什么:“Canvas c = null;”?你传递null给onDraw方法,可能会得到NullPointerException。 –