2010-09-08 38 views
7

我要画上绘制方法位图MyPositionOverlay扩展覆盖类,但我得到这个错误:该方法的getResource()是未定义的类型MyPositionOverlay的Android的getResource()未定义的错误

我哪里错了?

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

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

由于

回答

14

的getResources()方法是不重叠类的成员。 getResources()是Context类的成员。你需要一个Context的引用传递给您的叠加的子类,以便它可以加载绘制资源:

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

你也不想在你的画法加载一个位图,因为它是非常占用大量内存,会减慢你的应用程序,你应该在覆盖层的构造函数中保存一个位图的成员变量,这样它只能被加载一次。

+1

感谢您的回复速度快,但现在我得到这个错误“情况下解决不了” – Jovan 2010-09-08 01:01:13

+1

你必须定义上下文的背景下; – Jorgesys 2010-09-08 01:17:13

1

使用

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

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