anroid边框阴影-圆角阴影-渐变阴影

anroid给边框加阴影只能对内阴影,没有给边框对外加阴影,在自定义shape中增加一层或多层,并错开,即可显示阴影效果。

给边框加阴影可使用<layer-list  多图层叠加,但是对于圆角边框阴影来讲就复杂点,特别还是渐变色阴影就更难玩了,如下具体介绍。

1.圆角阴影效果(内阴影),不加渐变色,第一层渐变色其实没啥用,是对整个边框渐变,2dp的阴影还是一个颜色。


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


<!-- bottom shadow 第一层也就是最外那层 -->
<item >
<!left="1dp"  距离左边1dp -->
 <shape android:shape="rectangle" > 

<gradient android:type="linear" 

android:centerX="0.5" 

android:centerY="0.5" 

android:angle="90" 

android:startColor="#1A000000" 

android:centerColor="#00000000" 

android:endColor="#1A000000" /> 

<corners android:radius="3.33dp" /> 

</shape>

</item>

<!-- content 最上面那层-->

<item android:bottom="2dp" >
<!android:bottom="1dp"  第一层下阴影的厚度 -->
 <shape android:shape="rectangle" > <solid android:color="#fffffe" /> <corners android:radius="3.33dp" /> </shape></item>

</layer-list>



 <layer-list> 
      <!-- 第一层 -->  
      <item android:left="4dp" android:top="4dp">
        <shape> 
          <solid android:color="#66000000"/>  
          <corners android:radius="30dip"/>  
          <!-- 描边 -->  
          <stroke android:width="1dp" android:color="#ffffffff"/> 
        </shape>
      </item>  
      <!-- 第二层 -->  
      <item android:bottom="4dp" android:right="4dp">
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="30dip"/>  
          <!-- 描边 -->  
          <stroke android:width="1dp" android:color="#ffffffff"/> 
        </shape>
      </item> 
    </layer-list>

由于渐变是对整个边框进行的,以上由于阴影厚度为2dp,几乎看不到渐变色。


2.矩形阴影效果,外阴影,如果是矩形阴影则可以显示渐变色,在边框下边再添加一个边框表示阴影,模拟外阴影效果。


<View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@drawable/layout_shadow"
        >


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


    <gradient
        android:type="linear"
        android:centerX="0.5"
        android:centerY="0.5"
        android:angle="270"
        android:startColor="#1A000000"
        android:endColor="#00000000"
        />




</shape>




3. 圆角渐变阴影,三层叠加
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >




<!-- 第一层为背景色 -->
<item >
    <shape android:shape="rectangle" >
        <solid android:color="@color/color_f5f5f5" />
    </shape>




</item>








<!-- 第二层投影渐变色 -->
<item android:top="62dp"
   >
    <shape android:shape="rectangle" >
        <!-- from top to bottom -->
        <gradient
            android:type="linear"
            android:centerX="0.5"
            android:centerY="0.5"
            android:angle="270"
            android:startColor="#33000000"
            android:centerColor="#1A000000"
            android:endColor="#00000000"
            />
        <!-- 4dp渐变 后2dp为10%透明度到完全透明 -->
        <corners android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"/>








    </shape>




</item>




    <!-- 第三层数据显示 -->
    <item android:bottom="2dp"
        >
        <shape android:shape="rectangle" >
           <solid android:color="@color/color_fffffe"/>
            <corners android:radius="3.33dp" />








        </shape>




    </item>




</layer-list>


<LinearLayout
    android:layout_marginTop="10dp"
    android:layout_marginLeft="12dp"
    android:layout_marginRight="12dp"
    android:paddingLeft="12dp"
    android:layout_width="match_parent"
    android:layout_height="66dp"
    android:background="@drawable/shape_corner"
    android:gravity="center_vertical"
    android:orientation="vertical">










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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值