Java 我不断地听到一个错误,说“不”;无法从int转换为Drawable";。I';我正在尝试将图像分配到位置。有办法解决这个问题吗?

Java 我不断地听到一个错误,说“不”;无法从int转换为Drawable";。I';我正在尝试将图像分配到位置。有办法解决这个问题吗?,java,android,overlay,drawable,Java,Android,Overlay,Drawable,我似乎无法在drawable文件夹中引用我的图像。我有图像,但我不断得到一个错误,说明我不能转换一个int到Drawable。我的R.java生成的文件中有图像的字符串,但是它被设置为“publicstaticfinalintrestaurant=0x7f020001;” R.drawable.restaurant是一个常量int,它保存可提取资源的idrestaurant,它不是一个可提取对象。我想您需要这样的东西: Bitmap bitmap = BitmapFactory.decodeRe

我似乎无法在drawable文件夹中引用我的图像。我有图像,但我不断得到一个错误,说明我不能转换一个int到Drawable。我的R.java生成的文件中有图像的字符串,但是它被设置为“publicstaticfinalintrestaurant=0x7f020001;”


R.drawable.restaurant
是一个常量int,它保存可提取资源的idrestaurant,它不是一个可提取对象。

我想您需要这样的东西:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.restaurant);
this.marker = bitmap;
或者,使用您的解决方案:

marker = getResources().getDrawable(R.drawable.restaurant);

您需要执行以下操作:

marker = getResources().getDrawable(R.drawable.restaurant);
获取消息“类型PlaceOverlayItem的方法getResources()未定义”的原因是getResources()是从上下文类继承的方法,因此必须从活动(或其他)调用它,或将上下文传递给方法


希望这能有所帮助

嘿,它有点工作了,但现在它说“类型PlaceOverlayItem的getDrawable(int)方法未定义”。回答得好!完成位图后,请记住
recycle()
。感谢各位的帮助,我在getResources中仍然遇到错误。“类型PlaceOverlayItem的方法getResources()未定义”。getResources()是活动上的一个方法。
getResources().getDrawable(R.drawable.restaurant)
已被弃用,您可能必须使用类似于
ContextCompat.getDrawable(getContext(),R.drawable.restaurant)的内容。
getDrawable从今天起已被弃用。getDrawable现在已弃用,请使用此选项
marker = getResources().getDrawable(R.drawable.restaurant);