0

this is my class.. ı want to use it in my simple game's GameEngine.. but ı didn't understand the problem here.. it doesn't work..

public class Droid {

    private Bitmap      bitmap; 
    private int     x;      
    private int     y;      
    private boolean         touched;    
    private Speed       speed;
    private Paint       paint;

    public Droid(Resources resources, Bitmap bitmap, int x, int y)
        {
            this.bitmap = bitmap;
            this.x = x;
            this.y = y;

            // create droid and load bitmap
            bitmap = BitmapFactory.decodeResource(resources,
                    R.drawable.droid_1);

        }

              public void draw(Canvas canvas)
        {

            canvas.drawBitmap(bitmap, x - bitmap.getWidth() / 2,
                    y- bitmap.getHeight() / 2, paint);
        }



     }

when ı run code, ı see a nullpointerexception at draw() method... how can ı solve this? thanks for help...

4

2 回答 2

0

主要活动

    public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    MyView mv = new MyView(this,bmp,100,100); 
            // pass the bitmap and x and y co-ordinates to the constructor of Myview
    setContentView(mv); // set the content to your activity
}
  }

自定义视图类

  public class MyView extends View{ // should extend view
 Context c;
 private Bitmap   bitmap; 
 private int     x;      
 private int     y; 
 private Paint       paint;
 public MyView(Context context,Bitmap bmp, int i, int j) {
    super(context);
    // TODO Auto-generated constructor stub
    this.c=context;
    this.bitmap=bmp;
    this.x=i;
    this.y=j;
    paint= new Paint();
}
@Override
    public void draw(Canvas canvas) // override view on draw and draw the bitmap
    {

    canvas.drawBitmap(bitmap, x - bitmap.getWidth() / 2,
             y- bitmap.getHeight() / 2, paint); // instead of paint you can have null
    }
} 
于 2013-05-12T07:59:57.723 回答
0

// 我希望,我解决了这个问题.. 终于.. :)

公共类机器人{

private Bitmap      bitmap; 
private int     x;      
private int     y;      
private boolean         touched;    
private Speed       speed;
private Paint       paint;

public Droid(Resources resources, Bitmap bitmap, int x, int y)
    {
        paint= new Paint();
//    this.bitmap = bitmap;   // delete this part, it will work..  :)))
    this.x = x;
    this.y = y;

        // create droid and load bitmap
        bitmap = BitmapFactory.decodeResource(resources,
                R.drawable.droid_1);

    }

          public void draw(Canvas canvas)
    {

        canvas.drawBitmap(bitmap, x - bitmap.getWidth() / 2,
                y- bitmap.getHeight() / 2, paint);
    }



 }
于 2013-05-13T17:23:46.573 回答