我使用了Maps V2 FragmentActivity,SupportMapFragment
但是现在我正试图让它工作不使用上面但是使用
MapView.地图文档似乎说你可以这样做.
该应用程序运行,但我只是得到一个黑屏,没有地图.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Java文件:
package com.jps.mapstestthree;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.LayoutInflater;
import android.content.Context;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
public class MainActivity extends Activity
implements OnMapReadyCallback
{
private GoogleMap googleMap;
private View view;
private MapView mapView;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
context = (Context)getApplication();
LayoutInflater inflater =(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); …Run Code Online (Sandbox Code Playgroud) 是的,我知道有很多关于这个主题的帖子,但我尝试过的都不起作用。
我是在 Windows 上从命令行运行 Gradle,而不是从 Android Studio 执行此操作。
我刚刚删除了以前的Android SDK文件夹,下载了最新的Android SDK,并安装到C:\android-sdk
然:
sdkmanager "platform-tools" "build-tools;28.0.3" "platforms;android-26" "platforms;android-28"
Run Code Online (Sandbox Code Playgroud)
然后跑:
sdkmanager --licenses
Run Code Online (Sandbox Code Playgroud)
并接受每个许可证及其响应:接受所有 SDK 包许可证
然后我运行:
C:\Dev>SET ANDROID_HOME=C:/android-sdk&&SET PATH=C:/gradle-4.0/bin;%PATH%&&SET JAVA_HOME=C:/Program Files/Java/jdk1.8.0_31&&cd C:/Android/dev/ProgramName&&gradle clean
Run Code Online (Sandbox Code Playgroud)
并得到这个错误:
> You have not accepted the license agreements of the following SDK components:
[Android SDK Build-Tools 28.0.3, Android SDK Platform 28].
Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
Run Code Online (Sandbox Code Playgroud)
ANDROID_HOME 设置为 …
基本上我希望能够使用谷歌地图 v2 在地图上绘制雷达图像,具有良好的性能并且位图图像没有闪烁或延迟。
我目前正在使用 Maps v1 来执行此操作,并且效果很好,但 Maps v2 不太适合这样做。
您可能会认为 GroundOverlay 或 TileOverlay 可能有用,但是根据我从尝试使用它们的人那里读到的内容,您必须在绘制下一张图像之前 remove() 前一张图像,或者尝试绘制一些杂乱无章的图像位图图像作为标记或其他东西。它必须具有良好的性能。
所以我希望能够使用自定义视图或 ImageView 并使用它的 onDraw() 绘制位图并使其在地图上可见并随之移动。
喜欢:
<Outer Container>
<fragment .. />
<com.my.customView .. />
or
<ImageView .. />
</Outer Container>
Run Code Online (Sandbox Code Playgroud)
我在网络上到处寻找有关如何使用 Maps v2 执行此类操作的详细信息的可能示例,但一无所获。
我在当前的应用程序中使用了几个自定义视图,所以我对它们很熟悉,并且我有位图的边界框详细信息,我很确定我可以使用投影信息来帮助绘制它们。
另一个问题是如何调用 invalidate() 以便调用 onDraw()。
我只需要一些示例代码来展示如何从某种基于 View 的对象中使用 onDraw(),我可以尝试查看它是否有效,但不尝试使用“GroundOverlay”、“TileOverlay”或“标记”,我真的很感激!
谢谢!
我需要能够在我的Android安装中包含一个文本文件,以便我可以根据需要阅读和解析它.
它大约是57 KB字节,因此我可能无法将其作为"字符串"资源.我是否尝试将其添加为某种资源?它说"Raw"不能接受字符串.
我可以做一个HTTP GET来获取类似的XML文件,但是这个更大,900 KB,我的文件是一个非常精简的数据版本.
谢谢!