当前位置: 首页 > 知识库问答 >
问题:

setContentView()地图片段慢

巫马越彬
2023-03-14

我正在开发一个将谷歌地图(api v2)显示为片段的应用程序。当应用程序加载时,它会在显示地图之前显示几秒钟的空白白屏。我使用日志语句查看延迟在哪里,但我不知道为什么这么慢。

这是我的onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    Log.i(TAG, "onCreate Start -------------------------------");
    super.onCreate(savedInstanceState);
    Log.i(TAG, "onCreate 1 -------------------------------");
    setContentView(R.layout.activity_main);
    Log.i(TAG, "onCreate 2 -------------------------------");
    do_async_setup();
    Log.i(TAG, "onCreate 3 -------------------------------");
    prefs = getSharedPreferences(PREFS_NAME, 0);
    prefs_editor = prefs.edit();
    Log.i(TAG, "onCreate Finish -------------------------------"); 

这是输出。

01-20 10:05:28.802: I/HeadsUp(19544): onCreate Start -------------------------------
01-20 10:05:28.802: I/HeadsUp(19544): onCreate 1 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 2 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 3 -------------------------------
01-20 10:05:30.403: I/HeadsUp(19544): onCreate Finish -------------------------------

您可以看到setContentView延迟1.5秒。这是我的布局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/>

</RelativeLayout>

它看起来很糟糕,就像加载时应用程序已冻结。我如何加快速度或隐藏延迟?

谢谢

共有2个答案

乜业
2023-03-14

我发现如果您连接了调试会话,这可能会非常慢,但如果您没有连接,速度通常更容易接受。如果USB电缆断开连接,它会运行得更快,这可能就是原因。

岑炯
2023-03-14

这是使用GLSurfaceView的一个缺点,例如Android中的新地图v2。延迟是由GLSurfaceView的初始化引起的。看这里http://code.google.com/p/gmaps-api-issues/issues/detail?id=4639在谷歌发布的第5篇文章附近有一个简短的解释,以及一个帮助解决这个问题的小片段(一点)。请在问题上加星号以增加其优先级。

 类似资料:
  • 我试图在另一个片段中显示一个谷歌地图片段,但是我不能操纵地图,我已经把我看到的所有步骤都留档了,但是我不能操纵我的地图。 XML代码: 类片段代码: 主要活动类别代码: } 在调用getMapAsync()后,编辑以下堆栈跟踪: 空指针错误: 12-18 19:51:50.056 11265-11265/ar.com.taxiexpress.taxiexpressE/AndroidRuntime:

  • 我是xamarin的新手,我需要在应用程序中放置谷歌地图。 我已经从xamarin下载了示例: https://github.com/xamarin/monodroid-samples/tree/master/MapsAndLocationDemo_v2 经过一些改变,它工作了,这个项目显示地图。 以下是工作的项目的代码: /MainActivity.cs/ /BasicDemo.axml/ /A

  • 问题内容: 我正在从这里使用出色的毒蛇库:https : //github.com/spf13/viper 我正在尝试读取hcl中的配置文件(尽管它也可能是JSOn或YAML文件),如下所示: 到目前为止,我的代码如下: 我遇到的最大问题是使用group选项。这可以是多个不同的组。 当我在使用中阅读它时,它似乎不起作用,所以我使用了标准函数。转储时,结果结构如下所示: 我使用反射时似乎是切片类型。

  • 我在我的应用程序中实现了一个谷歌地图片段,用户可以通过点击右上角的“指南针”按钮看到他们当前的位置。

  • 情况是我使用Fragments在main活动中显示2个视图,这意味着我有两个选项卡,而在第二个选项卡中,我使用以下代码显示谷歌地图 这是第二个选项卡,我想自定义地图,为此我在上面的函数中使用了这段代码。 imap=SupportMapFragment)getSupportFragmentManager()。findFragmentById(R.id.map))。getMap(); imap是在创建

  • 我以前为MapView做过这项工作,它非常简单,因为有预定义的方法,比如或等。 有人在地图片段中尝试过双击或双击缩放功能吗?我谷歌了一下,但仍然找不到任何解决方案。 我刚刚开始添加UiSetting只 它将由的帮助来实现,还是有什么东西来处理地图片段的双击事件的手势? 注意:这个问题纯粹是关于MapFragment的,与MapView无关,后者已经回答了双击:在Android MapView上缩放