Android L FAB按钮阴影

zeT*_*Moy 11 android button shadow floating-action-button android-5.0-lollipop

在Material Design指南中,Google推出了一种新的按钮样式,即FAB Button.我找到了如何制作它的说明,但是添加阴影时遇到了麻烦.怎么能实现这一目标?

yan*_*ver 20

查看"activity.java",可能还有您需要的代码.

我做了Fab - Button这样:

layout.xml

    <Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:text="+"
    android:textSize="40sp"
    android:background="@drawable/ripple"
    android:id="@+id/fabbutton"
    android:layout_margin="@dimen/activity_horizontal_margin"
    android:elevation="3dp"
    android:paddingBottom="16dp"
    android:fontFamily="sans-serif-light"
    android:layout_alignParentEnd="true"
    android:layout_gravity="right|bottom" />
Run Code Online (Sandbox Code Playgroud)

ripple.xml

<?xml version="1.0" encoding="utf-8"?>
 <ripple android:color="#ffb300" xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@drawable/fab"></item>
</ripple>
Run Code Online (Sandbox Code Playgroud)

fab.xml

<?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <solid android:color="@color/accentColor" />
</shape>
Run Code Online (Sandbox Code Playgroud)

Activity.java

    import android.graphics.Outline;
    ...
    Button fab = (Button) rootView.findViewById(R.id.fabbutton);

    Outline mOutlineCircle;
    int shapeSize = getResources().getDimensionPixelSize(R.dimen.shape_size);
    mOutlineCircle = new Outline();
    mOutlineCircle.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 2);

    fab.setOutline(mOutlineCircle);
    fab.setClipToOutline(true);
Run Code Online (Sandbox Code Playgroud)

此代码将在android studio v0.8.1中显示为错误,以及其他android l组件.它将在下一个版本中修复.

结果:

在此输入图像描述