gpt4 book ai didi

java - 如何在osmdroid中扩展ResourceProxy接口(interface)?

转载 作者:行者123 更新时间:2023-12-01 11:03:07 25 4
gpt4 key购买 nike

是的,我知道,另一个关于更改 osmdroid 中的图标的线程。但没有任何好的解释!

我做了很多研究,结果是 frequently asked topic 。为什么不在此时为所有需要指定自己资源的用户做出明确的回答呢?

所有可用的东西都是“Have a look at ResourceProxy.java ”或“将位图传递给构造函数”。没办法,它对我不起作用,我什至不知道一个简单的界面如何在我的 res 文件夹中找到我的可绘制对象!我尝试传递一些与 osmdroid 同名的 .PNG 文件(例如“person.png”),但当我运行应用程序时,我仍然拥有默认资源。

有人可以清楚解释如何一步步编写“我们自己的ResourceProxy”吗? Not brievely like that because I followed the steps and didn't manage to success.

我知道 osmdroid was fixed recently在 github 中,但 .aar 比修复程序旧。在这里您可以找到 Resource Proxy class.

最佳答案

当您在 MapView 实例中创建时,您需要传入对“ResourceProxy”实现的引用。默认情况下,它加载“DefaultResourceProxyImpl”。要重写,请创建一个扩展 DefaultResourceProxyImpl 的新类,然后您可以重写 getBitmap 和 getDrawable。实际上这里有一个覆盖 DefaultResourceProxyImpl 的示例:

https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/ResourceProxyImpl.java

为了您,我正在努力在 osmdroid 示例应用程序中包含这样一个示例。它看起来像这样

 public class CustomResourceProxy extends DefaultResourceProxyImpl {

private final Context mContext;
public CustomResourceProxy(Context pContext) {
super(pContext);
mContext = pContext;
}

@Override
public Bitmap getBitmap(final bitmap pResId) {
switch (pResId){
case person:
//your image goes here!!!
return BitmapFactory.decodeResource(mContext.getResources(),org.osmdroid.example.R.drawable.sfgpuci);

}
return super.getBitmap(pResId);
}

@Override
public Drawable getDrawable(final bitmap pResId) {
switch (pResId){
case person:
//your image goes here!!!
return mContext.getResources().getDrawable(org.osmdroid.example.R.drawable.sfgpuci);
}
return super.getDrawable(pResId);
}

}

编辑:完成请参阅https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/CustomResourceProxy.java

编辑:编辑:维基已更新,请参阅 https://github.com/osmdroid/osmdroid/wiki/How-to-use-the-osmdroid-library

关于java - 如何在osmdroid中扩展ResourceProxy接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33185963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com