android提升阴影按钮也可以添加涟漪效果

时间:2015-09-28 16:54:10

标签: android xml button rippledrawable

我刚开始使用材料设计并遇到问题。应用程序很简单它有一个+和 - 按钮来提升一个正方形增加它的阴影。但是我无法通过按钮(升高和降低)来提升和投射阴影。

屏幕截图:

enter image description here

以下是相关的代码块:

activity_main.xml中:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/container_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <include
            android:id="@+id/toolbar"
            layout="@layout/toolbar" />
    </LinearLayout>

    <FrameLayout
        android:id="@+id/container_body"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_marginTop="30dp"
        android:layout_weight="1" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="horizontal">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="-"
                android:width="75dp"
                android:height="50dp"
                android:textSize="20sp"
                android:textColor="@color/textColorPrimaryLight"
                android:background="@drawable/button"
                android:id="@+id/decrease"
                android:elevation="50dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:id="@+id/label"
                android:textColor="@color/textColorPrimary"
                android:background="@color/colorAccentLight"
                android:textSize="20sp"
                android:padding="10dp"
                android:elevation="30dp"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:width="75dp"
                android:height="50dp"
                android:text="+"
                android:textColor="@color/textColorPrimaryLight"
                android:textSize="20sp"
                android:background="@drawable/button"
                android:id="@+id/increase"
                android:elevation="50dp"/>

        </LinearLayout>

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_marginBottom="90dp"
            android:elevation="0dp"
            android:background="@drawable/demo_sq"
            android:id="@+id/img"
            android:layout_gravity="center_horizontal|top" />
    </FrameLayout>

</LinearLayout>

<fragment
    android:id="@+id/fragment_navigation_drawer"
    android:layout_width="@dimen/nav_drawer_width"
    android:layout_height="match_parent"
    android:name="com.bkane56.grocerylist.FragmentDrawer"
    android:layout_gravity="start"
    app:layout="@layout/fragment_navigation_drawer"
    tools:layout="@layout/fragment_navigation_drawer" />

button.xml:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_pressed"/>
    <item android:drawable="@drawable/button_normal"/>
</selector>

button_normal.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape="oval">
    <solid android:color="@color/colorPrimary" />

</shape>

button_pressed:

<shape xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape="oval">
    <solid android:color="@color/colorAccentLight" />

</shape>

我也想对它产生连锁反应,但不确定如何。

感谢任何帮助。

至少对于这项工作,它是API 21 +

0 个答案:

没有答案