Android 控件设置阴影效果

发布时间 - 2026-01-11 03:21:37    点击率:

本文主要记录Android控件设置阴影

  • 给控件设置阴影,会使得界面元素更好看一写,google 给我们提供了一个现成的控CardView,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果
  • 本文是使用给控件设置背景实现阴影
  • 在res/drawable 下新建一个 Drawable Resource File
  • 使用 layer-list 图层 就是说可以多个图层一层一层盖上去
  • 新建一个渐变的图层 item作为背景图层,主要是 gradient,shape是用来定义形状的,corners设置角度,gradient定义该形状里面为渐变色填充,startColor起始颜色,endColor结束颜色,angle表示方向角度。当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上
<item >
 <shape android:shape="rectangle" >
 <gradient
  android:angle="90"
  android:endColor="#dad9d9"
  android:startColor="#03a430" />
 <corners android:radius="10dp" />
 </shape>
 </item>

新建一个图层,作为顶层图层, 阴影实现的原理,就是顶层的小显示一点,露出一部分下面的图层,这个就需要设置Item的 left, top, right, bottom属性,这几个参数的设置就类似于设置margin, 这样就可以出来阴影效果了,当然为了效果,我的参数设置的有点夸张,只设置了右边和下边的阴影,solid 设置填充, 还有stroke 设置边框,设置了颜色,设置了宽度就可以看见边框效果了

<item >
 <shape android:shape="rectangle" >
 <gradient
  android:angle="90"
  android:endColor="#dad9d9"
  android:startColor="#03a430" />

 <corners android:radius="10dp" />
 </shape>
</item>
<item android:right="20dp"
 android:bottom="40dp">
 <shape android:shape="rectangle" >
 <solid android:color="#FFFFFF"/>
 <corners android:radius="10dp" />
 </shape>
</item>

顶层的图层上,还是可以添加触摸的变化效果,即手指触碰到该控件时,控件背景色变化

<item
 android:right="2dp"
 android:bottom="6dp">
 <selector>
  <item android:state_focused="false" android:state_pressed="true" >
  <shape android:shape="rectangle" >
   <solid android:color="@color/E5"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
  <item>
  <shape android:shape="rectangle" >
   <solid android:color="@color/white"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
 </selector>
 </item>

使用:android:background=”@drawable/你的阴影xml文件”

<LinearLayout
 android:layout_width="match_parent"
 android:layout_height="50dp"
 android:background="@drawable/vcam_entry_border"
 android:gravity="center"
 android:orientation="vertical">
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:paddingRight="@dimen/common_measure_10dp"
 android:textColor="@color/black_100"
 android:text="啦啦啦啦,我有阴影"/>
</LinearLayout>

附 : 完整的阴影xml 代码

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 <!-- 阴影部分 最下面一层 -->
 <item >
 <shape android:shape="rectangle" >
  <gradient
  android:angle="90"
  android:endColor="#777777"
  android:startColor="#C5C5C5" />
  <corners android:radius="10dp" />
 </shape>
 </item>
 <!-- 背景部分 -->
 <!-- 形象的表达:bottom left ... 类似于设置 margin -->
 <item
 android:right="2dp"
 android:bottom="6dp">
 <selector>
  <item android:state_focused="false" android:state_pressed="true" >
  <shape android:shape="rectangle" >
   <solid android:color="@color/E5"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
  <item>
  <shape android:shape="rectangle" >
   <solid android:color="@color/white"/>
   <corners android:radius="10dp" />
  </shape>
  </item>
 </selector>
 </item>
</layer-list>

总结

以上所述是小编给大家介绍的Android 控件设置阴影效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # 控件设置阴影  # Android自定义View之自定义评价打分控件RatingBar实现自定义星星大小和间距  # Android中让图片自适应控件的大小的方法  # android 设置控件的颜色字体的方法  # Android动态添加设置布局与控件的方法  # Android中ImageView.src设置图片拉伸、填满控件的方法  # Android设置控件阴影的三种方法  # android 添加随意拖动的桌面悬浮窗口  # Android弹出窗口实现方法  # Android自定义弹出窗口PopupWindow使用技巧  # Android编程处理窗口控件大小  # 形状  # 像素等UI元素工具类  # 图层  # 新建一个  # 类似于  # 小编  # 就可以  # 啦啦  # 多个  # 渐变色  # 在此  # 我有  # 给我们  # 是从  # 给大家  # 这几个  # 往上  # 所述  # 给我留言  # 感谢大家  # 到该  # 触碰 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251811 】 【 AI营销90571


相关推荐: 如何在不使用负向后查找的情况下匹配特定条件前的换行符  iOS中将个别页面强制横屏其他页面竖屏  Laravel如何为API生成Swagger或OpenAPI文档  在centOS 7安装mysql 5.7的详细教程  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  nodejs redis 发布订阅机制封装实现方法及实例代码  PHP 500报错的快速解决方法  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  微信小程序 闭包写法详细介绍  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  微信h5制作网站有哪些,免费微信H5页面制作工具?  智能起名网站制作软件有哪些,制作logo的软件?  青岛网站建设如何选择本地服务器?  中山网站制作网页,中山新生登记系统登记流程?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  成都网站制作公司哪家好,四川省职工服务网是做什么用?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  南京网站制作费用,南京远驱官方网站?  如何快速生成凡客建站的专业级图册?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  EditPlus中的正则表达式实战(5)  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  javascript中闭包概念与用法深入理解  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何登录建站主机?访问步骤全解析  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  大同网页,大同瑞慈医院官网?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  详解Huffman编码算法之Java实现  如何为不同团队 ID 动态生成多个独立按钮  桂林网站制作公司有哪些,桂林马拉松怎么报名?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  高防服务器租用首荐平台,企业级优惠套餐快速部署  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何使用模型观察者?(Observer代码示例)  北京专业网站制作设计师招聘,北京白云观官方网站?  html如何与html链接_实现多个HTML页面互相链接【互相】