java - Android – MapFragment 叠加按钮阴影,就像 MyLocation 按钮一样

标签 java android material-design mapfragment mylocationoverlay

我正在努力向谷歌地图上的自定义叠加按钮添加阴影。我的目标是让我的自定义按钮看起来就像 Google 的 MyLocation 按钮。这是我的应用程序现在的样子:

enter image description here

布局.xml

<RelativeLayout 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_height="match_parent"
    android:layout_width="match_parent"
    style="@style/AppTheme">

    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/map"
        tools:context=".MapsActivity"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true" />


    <ImageButton
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:id="@+id/button"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:src="@drawable/ic_search_black_24dp"
        android:tint="@color/icon_gray"
        android:onClick="searchButtonClicked"
        android:background="@drawable/mapbutton"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <com.quinny898.library.persistentsearch.SearchBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/searchbox"
            />

    </LinearLayout>

</RelativeLayout>

map 按钮.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false">
        <shape android:shape="rectangle">
            <corners android:radius="1.3dp" />
            <solid android:color="#55FFFFFF" />
        </shape>
    </item>
    <item
        android:state_pressed="true"
        android:state_enabled="true">
        <shape android:shape="rectangle">
            <corners android:radius="1.3dp" />
            <solid android:color="#ccb3b3b3" />
        </shape>
    </item>
    <item
        android:state_focused="true"
        android:state_enabled="true">
        <shape android:shape="rectangle">
            <corners android:radius="1.3dp" />
            <solid android:color="#A9FFFFFF" />
        </shape>
    </item>
    <item android:state_enabled="true">
        <shape android:shape="rectangle">
            <corners android:radius="1.3dp" />
            <solid android:color="#baffffff" />
        </shape>
    </item>
</selector>

我已经尝试更改 ImageButton 上的 android:elevation 值。不幸的是,添加海拔值似乎并没有为按钮添加阴影。有没有办法向我的 map 按钮可绘制对象添加阴影?

最佳答案

来自here对我有用的是:

<ImageButton
  android:clipToPadding="false"
  android:outlineProvider="bounds"
  android:elevation="2dp" />

关于java - Android – MapFragment 叠加按钮阴影,就像 MyLocation 按钮一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33168635/

相关文章:

Java小程序/Firefox不兼容问题

Java I/O 对路径中的每个文件进行操作

android - 在android中通过选项卡传递数据

android - 如何在 API 级别 8 中使用 TextToSpeech.getDefaultLanguage()?

java - Java Try/Catch block 的基准测试

安卓 FileNotFoundException res/drawable-hdpi/scrollbar_handle_vertical.9.png

javascript - 如何使用具有 Angular/ Material 设计的底板?

android - 带有不可编辑/不可取消后缀的 EditText

Android:将可绘制的渐变设置为背景时,按钮上缺少高程

java - Android 上的 SAX 被多次调用相同的数据但有偏移