如何在底部的SlidingTabLayout添加阴影

时间:2015-04-02 09:39:13

标签: android

这是我的XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.example.SlidingTabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/actionbar_bg" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="0px"
        android:layout_weight="1"
        android:background="@android:color/white" />

</LinearLayout>

到目前为止,我已经尝试过:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- Drop Shadow Stack -->
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#70d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#60d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#50d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#40d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#30d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#20d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#10d8d8d8" />
        </shape>
    </item>
    <item>
        <shape>
            <padding
                android:bottom="1dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

            <solid android:color="#00d8d8d8" />
        </shape>
    </item>

    <!-- Background -->
    <item>
        <shape>
            <solid android:color="@color/actionbar_bg" />

            <corners android:radius="0dp" />
        </shape>
    </item>

</layer-list>

然而,它没有给我想要的结果,我想要像:

enter image description here

1 个答案:

答案 0 :(得分:0)

Viewcom.example.SlidingTabLayout之间添加简单的android.support.v4.view.ViewPager。将View的背景设置为模仿阴影的渐变。

<强> shadow.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
            android:startColor="#20000000"
            android:endColor="@android:color/transparent"
            android:angle="90">
    </gradient>
</shape>

修改:如果您需要在ViewPager之上绘制阴影,请在{{1}中以阴影背景移动ViewPagerView }}。 当你没有RelativeLayout的来源时,这很好。如果您有源代码,可以从代码中添加阴影图,覆盖SlidingTabLayout中的onDraw方法。