美文网首页UI
Android自定义View实现圆角投影布局

Android自定义View实现圆角投影布局

作者: itfitness | 来源:发表于2021-08-02 17:46 被阅读0次

目录

前言

本来是想使用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>

案例源码

https://gitee.com/itfitness/shadow-layout

相关文章

网友评论

    本文标题:Android自定义View实现圆角投影布局

    本文链接:https://www.haomeiwen.com/subject/msjjvltx.html