我正在尝试向Google地图发送意图,以显示多个点之间的行车路线。我正在使用此处列出的方法,但它似乎无法很好地工作。该应用程序的最终功能是动态创建地图的网址,但是为了测试,我创建了一个带有一堆随机点的静态网址:
我的确切代码是:
String mapUrl = "https://maps.google.com/maps?saddr=San+Francisco,+CA&daddr=Los+Angeles,+CA+to:Phoenix,+AZ+to:Houston,+TX+to:Jacksonville,+FL+to:New+York,+NY+to:Buffalo,+NY+to:Chicago,+IL+to:Seattle,+WA+to:San+Jose,+CA";
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(mapUrl));
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
如果我从“使用以下命令完成操作”菜单中将其发送到浏览器,则它可以正常工作。(FWIW,如果我仅将URL复制并粘贴到桌面上的Web浏览器中,它也可以正常工作。)另一方面,如果将其发送到Maps应用程序,则它的行为不正确。在我运行过2.2和2.3的一些旧设备上,它显示了行车路线,但只标记了2个点,其中之一甚至不是我在url中传递的点之一,并且行车路线对于位置之间来回往返的多条路线。在任何4.X设备上,它什么都不显示,并且显示“网络故障”或“找不到路由”。我没有任何3.X设备,但是我希望它的行为与其中一种类似。
我不想使用MapView,因为对于我的应用程序基于地图的次要要求来说,这太过分了。我只希望能够向地图应用程序发送一个意图,以显示两个位置之间的路线,中间有航路点。我在新版Maps api的文档中找不到任何明确的答案,这可能吗?
我正在写一个Android应用程序,并遇到了一个非常奇怪的情况.我有一个动画列表xml文件,我为一个名为'loading.xml'的动画加载图形创建,我将其设置为我的代码中ImageView的背景.它是这样的:
public void startLoading() {
if(!isLoading) {
loading.setBackgroundResource(R.drawable.loading);
loading.post(new Runnable() {
public void run() {
anim = (AnimationDrawable) loading.getBackground();
anim.start();
}
});
flMask.setBackgroundResource(R.drawable.mask_loading);
flMask.setVisibility(View.VISIBLE);
flMask.bringToFront();
isLoading = true;
}
}
Run Code Online (Sandbox Code Playgroud)
这非常有效,没有任何问题.但是,如果我将'loading.xml'重命名为'anim_loading.xml'(为了使其与我通常的命名方案保持一致),我会使用
java.lang.ClassCastException: android.graphics.drawable.ColorDrawable
在哪里
anim = (AnimationDrawable)loading.getBackground();
更改名称后,强制关闭,如果我将其更改回'loading.xml',它将再次正常工作.
我真的很难过这个.我尝试使用正确的名称创建一个全新的文件,各种清理/构建,关闭/重新打开Eclipse,关闭/重新打开AVD,擦除AVD并重新安装新的,我已经尝试将xml文件完全重命名为其他内容,并且没有其他相同名称的资源.到目前为止,除了保留名为'loading.xml'的文件之外没有任何工作,至少它可以工作,但它很烦人.我无法找到任何具有相同类型问题的人,这些问题与SO和互联网一样广泛,通常意味着我在某个地方错过了一些愚蠢的事情.
有没有人有任何想法,为什么它不会改变这个文件上的名称?