【问题标题】:OSMdroid how to add watermarkOSMdroid如何添加水印
【发布时间】:2018-06-20 15:08:36
【问题描述】:

我正在创建一个免费的 Android 应用程序,并且正在使用 OpenStreetMap(OSMdroid 库)。我有个问题。网页上:https://www.openstreetmap.org/copyright 我已经读过,我应该在地图活动的角落里放一个文本(@OpenStreetMap 贡献者)。 这个怎么做? 我希望我的应用程序符合 OSM 许可证。 问候

【问题讨论】:

  • 我认为在地图视图底部有这样的大文本有点夸张。您确定不能简单地在应用的许可部分中添加积分吗?
  • 我必须在“关于”部分执行此操作,但在阅读此站点后我很困惑
  • @DoxPL,我认为spy's answer 正是您要找的。请考虑接受该答案。这将使其他用户更容易找到更好的解决方案。

标签: java android openstreetmap osmdroid


【解决方案1】:

有一个内置的版权叠加层,用于根据当前图块来源显示通知。

编辑,示例代码如下

//Copyright overlay
mCopyrightOverlay = new CopyrightOverlay(context);
mMapView.getOverlays().add(this.mCopyrightOverlay);

基本上,无论当前瓦片源是什么,都会绘制文本叠加层。

【讨论】:

  • 这个叠加层会自动显示还是我需要以某种方式启用它?如果是这样,是否有一些示例代码说明了如何做到这一点?
  • @sky,太棒了!谢谢。
【解决方案2】:

当你有你的布局文件时,只需添加一个带有“@OpenStreetMap 贡献者”的TextView。 (我建议使用RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <org.osmdroid.views.MapView android:id="@+id/map"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:text="OpenStreetMap Contributors" />
</RelativeLayout>

我在其他应用程序中看到,它们在启动时都会显示,几秒钟后它会淡出,因此您可以为此使用延迟动画。

textView.animate().setStartDelay(3000).alpha(0).setDuration(1000).start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多