小编ole*_*234的帖子

添加400个标记时,Android Google Map addMarker()速度非常慢

感谢您抽出时间来阅读.

我大约一个月前(2014年8月29日)向Google Play商店发布了一个应用程序,这对于相同数量的标记来说并不是问题.本周,我注意到当我进入我的应用程序时,在我的Galaxy S5上将400个标记加载到地图上需要大约10-20秒,并且在默认地图标记图标的中间有一个小圆圈.在此之前,地图加载不到一秒钟.我没有更新或更改我的应用程序.我猜谷歌更新了谷歌地图API,改变加载标记要慢得多吗?这有发生在其他人身上吗?还有其他人有关于此的信息吗?

我的应用程序在Play商店免费提供.您可以搜索NYS Canal Guide以查找它,如果您想查看它加载的速度有多慢.

初始化地图后,在地图片段的onCreateView()中调用此方法:

    private void addExistingMarkersToMap(){
    log("Adding existing markers to the map. poiAdapter size = " + poiAdapter.getCount());
    Marker marker;
    MarkerOptions markerOptions;

    for(MapMarker mapMarker : poiAdapter){
        if(markersNotFilteredOut(mapMarker)){
            markerOptions = mapMarker.getMarkerOptions();

            if(markerOptions != null && mapMarker != null){
                marker = mMap.addMarker(markerOptions);
                mapMarker.setMarker(marker);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是MapMarker类上的getMarkerOptions()方法:

public MarkerOptions getMarkerOptions() {
    return new MarkerOptions()
    .title(name)
    .position(new LatLng(lat, lng))
    .snippet(bodyOfWater + ", mile " + mile)
    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
}
Run Code Online (Sandbox Code Playgroud)

完整的源代码在这里:github.com/olearyj234/NYS-Canal-Guide

编辑:

**具体而言,唯一缓慢的部分是在初始化地图时加载标记(当从一个导航选项卡切换回地图选项卡时也是如此).移动地图或其他任何东西时都不会很慢.

以下是一些日志:

当屏幕被冻结几秒钟(5-15),因为它加载了标记,这个日志生产速度非常快.位图id继续递增1,当标记加载时,它会生成大约400个这些日志.这表明它必须是与在屏幕上加载标记位图相关的问题.我正在使用默认标记位图.

   10-01 15:45:07.222: D/skia(32108): GFXPNG …
Run Code Online (Sandbox Code Playgroud)

java performance android google-maps google-maps-markers

17
推荐指数
2
解决办法
5862
查看次数

iOS 9中UILabel中的多行文本

我正在开发iOS项目但是当我更新到iOS 9时,我在UILabels中遇到了多线问题.我正在使用Autolayout.

有谁知道如何在iOS 9中做到这一点?

我尝试了不同的方法,例如:

textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;
Run Code Online (Sandbox Code Playgroud)

(来自其他类似问题)但它没有用.

这是我显示多行的逻辑:

IB配置:

preferedMaxLayout

在此输入图像描述

标签配置

我以编程方式更新此值:

- (void)configureLabelsMaxLayoutWidth
{
     [self.view layoutIfNeeded];
     self.titleLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.titleLabel.frame);
}
Run Code Online (Sandbox Code Playgroud)

我在viewWillAppear上调用此方法

xcode interface-builder ios ios9

6
推荐指数
1
解决办法
3611
查看次数

根据语言本地化更改字体大小

我有一个应用程序,我在其中定义了所有必要的详细信息,现在我想将其本地化。我知道我们必须创建值文件夹并添加字符串,其中使用相同的“键”声明其他语言的字符串。

我的问题是假设我的应用程序的标题是“仪表板”,西班牙语是“Tablero de Instrumentos”,知道它包含的字母比英语中的字母多,因此应用程序的对称性会受到干扰。我想要的是根据调用的语言自定义字体大小,这样它就不会影响我的用户界面。

android

5
推荐指数
1
解决办法
2532
查看次数

Android Instant App - Play Console 发布/部署错误和 DAL(数字资产链接)未链接

我想弄清楚为什么 Play 商店不接受我的即时应用程序构建。我已成功向测试人员部署了Alpha常规应用程序版本,因为它是发布免安装应用程序的先决条件。我正在尝试部署开发版即时应用程序。我究竟做错了什么?我试图添加尽可能多的细节。

我是否需要将以下链接中的 Digital Asset Link API 服务用于生产即时应用程序,还是用于其他用途? https://console.developers.google.com/apis/api/digitalassetlinks.googleapis.com/overview

将免安装应用程序版本上传到播放控制台时出现以下错误:

您的网站“example.com”尚未通过数字资产链接协议链接到您的应用。请通过数字资产链接协议将您的网站链接到您的应用程序。

我有点困惑的一件事是为什么当我单击链接并验证是否收到错误消息“添加资产报表失败。 ”如下图所示: 添加资产报表失败 我注意到当我单击链接并验证按钮时,它会修改base 中的 strings.xml 文件并添加以下字符串:<string name="asset_statements" translatable="false">[{\n \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://example.com\",\n }\n}]</string>

我在应用程序标签下的basechecklistadvisor的清单中有以下内容:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>

项目描述和结构:

应用程序描述:这是一个概念验证应用程序。可安装的应用程序将打开带有两个按钮的主要功能活动,单击这些按钮将带您进入清单或顾问活动。有两个即时应用程序,instantapp-checklist 转到清单活动,而 Instantapp(advisor) 转到顾问活动。

  • 有 3 个功能模块:mainfeature、checklist、advisor
  • 有 2 个即时应用程序:instantapp-checklist、instantapp(advisor)

项目结构

  • 我的可安装应用程序包是:blah.blah1.blah2.myappname
  • 我的清单即时应用程序的包 ID 是:blah.blah1.blah2.myappname.checklist
  • 我的顾问即时应用程序包 ID 是:blah.blah1.blah2.myappname.advisor

我的 assetlinks.json 是:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app", …
Run Code Online (Sandbox Code Playgroud)

android applinks digital-assets-links android-instant-apps google-play-console

5
推荐指数
1
解决办法
1266
查看次数