Android的getResource()未定义的错误

我想在MyPositionOverlay中的绘制方法绘制位图延伸覆盖类,但我得到这个错误:方法getResource()是未定义的typesMyPositionOverlay

我哪里错了?

这里是代码格式的绘制方法:

Bitmap bmp = BitmapFactory.decodeResource(getResource(), R.drawable.icon); canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null); 

谢谢

getResources()方法不是Overlay类的成员。 getResources()是Context类的成员。 您需要将Context的引用传递给Overlay子类,以便加载Drawable资源:

 Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon); 

你也不想在你的绘图方法中加载一个位图,因为它非常占用内存,并且会减慢你的应用程序,所以你应该在覆盖层的构造函数中保存一个位图的成员variables,以便它只被加载一次。

使用

  Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon); 

要么

 Bitmap bmp = BitmapFactory.decodeResource(Context.getResources(), R.drawable.icon);