android – 如何在Google Maps中自定义infowindow的state_pressed颜色?

android – 如何在Google Maps中自定义infowindow的state_pressed颜色?,第1张

概述我正在尝试在Google地图中自定义InfoWindow的state_pressed行为.通常,当按下此InfoWindow时,它会变为黄色.自定义Info Windows也是如此.但我想将其改为另一种颜色,如红色或橙色或蓝色. 所以我创建了一个非常简单的自定义InfoWindow,如下所示: class MyInfoWindowAdapter implements InfoWindowAdapt 我正在尝试在Google地图中自定义InfoWindow的state_pressed行为.通常,当按下此InfoWindow时,它会变为黄色.自定义Info Windows也是如此.但我想将其改为另一种颜色,如红色或橙色或蓝色.

所以我创建了一个非常简单的自定义InfoWindow,如下所示:

class MyInfoWindowAdapter implements InfoWindowAdapter {    private final VIEw myContentsVIEw;    MyInfoWindowAdapter() {        myContentsVIEw = getLayoutInflater().inflate(R.layout.popup,null);    }    @OverrIDe    public VIEw getInfoContents(Marker marker) {        return null;    }    @OverrIDe    public VIEw getInfoWindow(Marker marker) {        return getLayoutInflater().inflate(R.layout.popup2,null);    }}

popup2的xml只是添加了一个简单的drawable并为其添加了一些文本,并使其可单击.可点击与否可能没有区别.

<TextVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:text="Test Popup"    androID:background="@drawable/info_window"    androID:clickable="true"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent" ></TextVIEw>

最后是drawable:

<selector xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:state_pressed="false">        <shape androID:shape="rectangle">            <stroke androID:wIDth="1dp" androID:color="@color/divIDer" />            <solID androID:color="@color/background_button" />            <padding androID:left="40dip"                 androID:top="10dip"                 androID:right="10dip"                 androID:bottom="40dp"/>         </shape>    </item>    <item androID:state_pressed="true">        <shape androID:shape="rectangle">            <stroke androID:wIDth="1dp" androID:color="@color/divIDer" />            <solID androID:color="@color/background_button_active" />            <padding androID:left="40dip"                 androID:top="10dip"                 androID:right="10dip"                 androID:bottom="40dp"/>         </shape>    </item></selector>

这里的选择器是我希望改变state_pressed颜色的东西,但事实并非如此.然而,如果我切换androID.state_pressed语句(第一个为true,第二个为false),则选择器本身会被 *** 作,颜色确实会发生变化.但只有未按下状态改变,按下状态仍然是黄色.

解决方法 用简单的话说“你不能”.

因为根据文档“信息窗口不是实时视图,而是视图在地图上呈现为图像.因此,您在视图上设置的任何侦听器都会被忽略,您无法区分各个部分的点击事件.视图.建议您不要在自定义信息窗口中放置交互式组件 – 例如按钮,复选框或文本输入.“

所以,简而言之,除了“OnInfoWindowClickListener”之外,你无法处理infowindow上的任何事件

有关更多,请选中“https://developers.google.com/maps/documentation/android/marker”.

总结

以上是内存溢出为你收集整理的android – 如何在Google Maps中自定义infowindow的state_pressed颜色?全部内容,希望文章能够帮你解决android – 如何在Google Maps中自定义infowindow的state_pressed颜色?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存