Java 在FloatingActionButton(v21)上获取圆形立面阴影

Java 在FloatingActionButton(v21)上获取圆形立面阴影,java,android,android-elevation,Java,Android,Android Elevation,我对安卓系统的开发相当陌生,是的,我在问之前已经尝试了很多来解决这个问题 因此,我试图实现FloatingActionButton(为了简单起见,仅在v21上实现),但我无法将高程阴影取整 以下是我已经掌握的代码行: 在主activity.java(名为overview)中: main activity.xml: <ImageButton android:id="@+id/fab" android:layout_width="@dimen/round_button_

我对安卓系统的开发相当陌生,是的,我在问之前已经尝试了很多来解决这个问题

因此,我试图实现FloatingActionButton(为了简单起见,仅在v21上实现),但我无法将高程阴影取整

以下是我已经掌握的代码行:

在主activity.java(名为overview)中:

main activity.xml:

    <ImageButton
    android:id="@+id/fab"
    android:layout_width="@dimen/round_button_diameter"
    android:layout_height="@dimen/round_button_diameter"
    android:layout_gravity="end|bottom"
    android:background="@drawable/oval_ripple"
    android:src="@android:drawable/ic_input_add"
    android:tint="@android:color/white"
    android:elevation="@dimen/elevation_low"
    android:stateListAnimator="@anim/button_elevation"
    android:layout_alignBottom="@+id/expandableListView"
    android:layout_alignEnd="@+id/expandableListView"
    android:layout_marginRight="@dimen/add_button_margin"
    android:layout_marginBottom="@dimen/add_button_margin"
    android:contentDescription="@string/fab"
    android:cropToPadding="false" />

dimens.xml

<dimen name="round_button_diameter">56dp</dimen>
<dimen name="add_button_margin">16dp</dimen>
<dimen name="elevation_low">8dp</dimen>
<dimen name="elevation_high">14dp</dimen>
56dp
16dp
8dp
14dp
oval_ripple.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
    <shape android:shape="oval">
        <solid android:color="#fff1d744"/>
    </shape>
</item>

button_elevation.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
    <objectAnimator
        android:propertyName="translationZ"
        android:duration="@android:integer/config_shortAnimTime"
        android:valueFrom="8dp"
        android:valueTo="14dp"
        android:valueType="floatType"/>
</item>
<item>
    <objectAnimator
        android:propertyName="translationZ"
        android:duration="@android:integer/config_shortAnimTime"
        android:valueFrom="14dp"
        android:valueTo="8dp"
        android:valueType="floatType"/>
</item>

我希望我没有忘记任何重要的代码部分,并为这篇冗长的帖子感到抱歉,但我很无助。如果有帮助的话,我还可以上传AndroidStudio项目文件


来自德国的问候,感谢您的回答。:)

为什么不使用库

在build.gradle中添加此行

dependencies {
     ...
     compile 'com.getbase:floatingactionbutton:1.3.0'
     ...
}
在布局xml文件中使用以下命令:

<com.getbase.floatingactionbutton.FloatingActionButton
    android:id="@+id/common_ring_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="10dp"
    android:layout_marginEnd="10dp"
    android:layout_marginRight="10dp"
    fab:fab_colorNormal="#FF2222"
    fab:fab_colorPressed="#FF0000"
    fab:fab_icon="android:drawable/ic_input_add"/>

但是你要记住,你必须把
FloatingButton
放在
RelativeLayout


如果您有任何问题,请在评论中提问:)

您尝试过我的解决方案吗?事实上,我真的不知道如何使用库:D我已经添加了您的代码,但知道Android Studio在“FloatingActionButton.class”中告诉我找不到源代码。您是否为build.gradle添加了依赖项?是的。在重新启动Android Studio后,它工作了。您知道如何更改加号图标的颜色吗?我是否有更改资源本身的权限,或者是否有xml行这样做?我现在如何获得连锁反应呢?谢谢你的帮助,我真的很感激:)太好了!我很高兴能帮助你。虽然每次我有问题都很容易问,但我不想这样做。你知道有什么可以帮助我在Android Studio中学习开发应用程序的方法吗?谁会很棒
<com.getbase.floatingactionbutton.FloatingActionButton
    android:id="@+id/common_ring_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="10dp"
    android:layout_marginEnd="10dp"
    android:layout_marginRight="10dp"
    fab:fab_colorNormal="#FF2222"
    fab:fab_colorPressed="#FF0000"
    fab:fab_icon="android:drawable/ic_input_add"/>