Android Studio Google Map V2片段渲染

时间:2014-05-27 21:09:37

标签: android google-maps android-layout android-studio

我尝试在Android Studio中为Google Map V2编写测试演示。我遵循Androidhive Google Map V2或更好的每一步,我认为我需要。

我使用相同的layout_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

但我总是遇到相同的渲染问题:

  

渲染问题
  <fragment>标记允许布局文件在运行时动态地包含不同的布局。在布局编辑时,要使用的特定布局是未知的。您可以在编辑布局时选择要预览的布局...

我完全不知道问题是什么。我忘记了什么吗? 我只需要在build.gradle中添加Google服务,例如

compile 'com.google.android.gms:play-services:4.4.52'

我从演示中复制了清单并更改了API密钥。

4 个答案:

答案 0 :(得分:71)

接受的答案没错,但没有用。

正如Dan所写,Android Studio(也是1.0版)不会显示地图 地图需要API密钥和动态处理代码,也许有一天我们会有,但到目前为止还没有 对于那些想要在布局预览中正确查看其应用的人,我有一个5分钟的解决方案: enter image description here

为了正确发展我还需要别的东西而不是空白的背景 我在地图上添加了叠加和按钮,我真的需要在将元素放在上面时看到地图 解决方案很简单:
 1.在地图运行时(Power + Volume Down)制作应用的屏幕截图  2.下载屏幕截图并使用图像编辑器删除顶部和底部UI元素,这样您最终只能将地图本身作为图像。
 3.将该图像导入android studio drawables
 4.创建一个新的布局,将其命名为dummy_mapviewfragment,只将一个linearlayout和一个imageview放入  5.制作图像视图&#34;填充&#34;父母,并设置&#34; src&#34;到刚刚导入的裁剪图像
 6.回到你的布局,将它添加到你的Mapview Fragment xml:

 tools:layout="@layout/dummy_mapviewfragment"/>

那就是它,现在你将有一个非交互式mapview片段,显示一个真实的地图 您的应用看起来就像在手机上看起来一样。 如果你在图像裁剪中出错,你可以修复&#34;通过将图像比例设置为&#34; centerCrop&#34;所以它会适当伸展。

更新:您无需直接在Androidstudio中裁剪即可获得截图!使它更方便;)

答案 1 :(得分:46)

  

渲染问题
  标记<fragment>允许布局文件在运行时动态地包含不同的布局。在布局编辑时,要使用的特定布局是未知的。您可以在编辑布局时选择要预览的布局...

这只是预览窗口,告诉您它无法显示<Fragment.../>标记的预览,因为它不知道您要将哪种片段放入其中。您可以放心地忽略该消息 - 您的实际应用程序将在您运行它时将片段渲染得很好(只要您正确编码它!)。

答案 2 :(得分:0)

将虚拟布局“@android:layout / simple_gallery_item”添加为:

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="317dp"
    android:layout_height="385dp"
    android:id="@+id/map"
    tools:context="com.example.XYZ.googlemaps.MapsActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    tools:layout="@android:layout/simple_gallery_item"/>

答案 3 :(得分:0)

Android Studio会在错误说明中自动提供解决方案,该解决方案会添加片段布局的名称。

  

tools:layout =“ @ layout / fragment_my”