目录
前言
本来是想使用CardView来实现的结果发现效果并不是很好因此就自己写了一个,整个逻辑很简单因此这里就不做解释了,有兴趣的同学可以下载源码调试一下
效果展示
使用方法
首先大家先看一下这个控件的所有自定义属性
<declare-styleable name="ShadowLayout" >
<!--控件圆角大小-->
<attr name="radius" format="dimension"/>
<!--控件阴影颜色-->
<attr name="shadowColor" format="color" />
<!--控件背景颜色-->
<attr name="layoutBackground" format="color" />
<!--阴影大小-->
<attr name="shadowSize" format="dimension" />
<!--X轴阴影偏移量-->
<attr name="xOffect" format="dimension" />
<!--Y轴阴影偏移量-->
<attr name="yOffect" format="dimension" />
</declare-styleable>
使用方式的话也很简单,直接把要加阴影的布局放到该控件中,然后根据属性的意思去设置相应的值即可
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.example.shadowlayout.widget.ShadowLayout
app:layoutBackground="@color/white"
app:radius="@dimen/dp_15"
app:shadowSize="@dimen/dp_5"
app:xOffect="@dimen/dp_2"
app:yOffect="@dimen/dp_2"
app:shadowColor="@color/colorAccent"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:src="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:text="我是按钮"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:src="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</com.example.shadowlayout.widget.ShadowLayout>
</FrameLayout>
网友评论