怎么为android控件边缘添加阴影

为控件设置一个有阴影感的背景图片即可,可以使用shape

在自定义shape中增加一层或多层,并错开,即可显示阴影效果。为增加立体感,按钮按下的时候,只设置一层。我们可以通过top, bottom, right 和 left 四个参数来控制阴影的方向和大小

//自定义两种阴影效果

第一种

<?xml version="1.0" encoding="utf-8"?>
 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
  <item android:state_pressed="true"
    <layer-list> 
      <item android:left="4dp" android:top="4dp">
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="30dip"/> 
        </shape>
      </item> 
    </layer-list> 
  </item>  
  <item> 
    <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>
  </item> 
</selector>

第二种

<?xml version="1.0" encoding="utf-8"?>
 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
  <!-- 点击之后 -->  
  <item android:state_pressed="true"
    <layer-list> 
      <item android:left="4dp" android:top="4dp"
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item> 
    </layer-list>
  </item>  
  <!-- 正常状态 -->  
  <item> 
    <layer-list> 
      <!-- 第一层 -->  
      <item android:left="2dp" android:top="2dp"
        <shape> 
          <solid android:color="#66000000"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item>  
      <!-- 第二层 -->  
      <item android:bottom="4dp" android:right="4dp"
        <shape> 
          <solid android:color="#ff58bb52"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item>  
      <!-- 第三层 -->  
      <item android:bottom="6dp" android:right="6dp"
        <shape> 
          <solid android:color="#ffcccccc"/>  
          <corners android:radius="3dp"/> 
        </shape> 
      </item> 
    </layer-list> 
  </item> 
</selector>

设置后的效果图如下

原文地址:https://www.cnblogs.com/imqsl/p/6561299.html