android实现按钮阴影左上角和右下角不同颜色

这里主要是说一下实现思路,楼主在全网没有找到能实现这种功能的第三方控件,所以自己自定义了一个组合控件,用到了第三方的框架,链接:阴影框架

由于框架不能实现自定义四边的阴影颜色,所以楼主创建了自定义view,然后自己写了一个布局,使用framelayout布局重叠了两个阴影布局,一个用来做左上边的阴影,一个右下角的,代码如下

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="afterDescendants"
    android:background="@color/material_on_primary_disabled"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <com.lihang.ShadowLayout
        android:id="@+id/right_bottom_shadow"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:hl_layoutBackground="@color/design_default_color_primary"
        app:hl_cornerRadius="10dp"
        app:hl_shadowColor="#2a000000"
        app:hl_shadowLimit="5dp"
        app:hl_shadowOffsetX="2dp"
        app:hl_shadowOffsetY="2dp"
        >
        <TextView
            android:textStyle="bold"
            android:id="@+id/right_bottom_shadow_text"
            android:textColor="@color/white"
            android:paddingVertical="@dimen/dp_5"
            android:paddingHorizontal="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="lala"
            />
    </com.lihang.ShadowLayout>
    <com.lihang.ShadowLayout
        android:id="@+id/left_top_shadow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:hl_cornerRadius="10dp"
        app:hl_layoutBackground="@color/design_default_color_primary"
        app:hl_shadowColor="#AAFFFFFF"
        app:hl_shadowLimit="5dp"
        app:hl_shadowOffsetX="-2dp"
        app:hl_shadowOffsetY="-2dp"
        >

        <TextView
            android:id="@+id/left_top_shadow_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:outlineProvider="background"
            android:paddingHorizontal="10dp"
            android:paddingVertical="@dimen/dp_5"
            android:text="lala"
            android:textStyle="bold"
            android:textColor="@color/white" />
    </com.lihang.ShadowLayout>
</FrameLayout>

然后在自定义view中填入上面的布局,即

 把布局填进去,然后找到布局里面的view初始化,向外面抛出事件去改变布局中的参数,也可以自定义属性,然后初始化时导入,即

 

关于这个第三方框架,一定要先熟悉大概效果,单看楼主这篇文章应该不能很快就应用,这里只是说一下思路,没有很仔细,不懂的在评论区问

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值