在软开中,经常需要对原生的控件UI进行修改,最近项目由于UI没到位,所有有些带边框的有立体效果的UI要自己实现,实现方法是用XML写Shape。

ListView Items加边框构成立体效果:

通过图像工具放大镜的帮助,其实可以发现一个Item背景其实是5个矩形组成:

所以我们可以通过5个矩形shape的top和bottom的挤压画出我们上图的效果:list_item_border.xml

最后把Item的背景设置成这个就可以了:

android:background="@drawable/list_item_border"

项目中还遇到过一个情况,就要多个TextView: EditText对的下方用一条线分隔开,效果如下:

同样用放大镜可以看到分割线其实是4个矩形(或者是4条线),但是不能和上面一样写,不然会被最后一个矩形把图像颜色都占满(这个问题我纠结很久)。应该和画线条一下写矩形:

就是给它们定好高度,然后一条条向下压。

补充下,圆角和可见边框的实现:其实很简单,分别采用Shape的 和 实现

圆角关键在于android:radius属性,这个是半径,数字越大,圆角越圆。

可见边框设置宽度就可以了,还有一个就是dash虚线的属性。这样实现边框都是全部的(矩形就是四边),如果想实现单边,那么你就只能用本文最开始的那个方法用两个(多个)矩形拼出只有一个边框的矩形。

java 给控件添加边框_Android UI 利用Drawable Shape给控件加边框/立体效果相关推荐

  1. 去掉边框_安卓也有堪比 VOUN 的加边框应用了,素材丰富到没朋友

    iOS 系统中有一款可以给照片加边框的应用 VOUN,里面的相框档次很高,调整后的效果也很不错,但是安卓却没有一款类似的应用.开发者 Joey 尝试找了很多款相似的应用,结果不是广告就是骗流量的辣鸡应 ...

  2. java安卓播放器添加选集_Android使用vitamio插件实现视频播放器

    使用第三方的vitamio插件实现简易的播放器.vitamio版本(5.2.3) 官网地址:官网地址 效果展示 效果 项目结构 代码: MainActivity package com.example ...

  3. android给图片加边框,Android学习笔记进阶19之给图片加边框

    //设置颜色 public void setColour(int color){ co = color; } //设置边框宽度 public void setBorderWidth(int width ...

  4. android listview添加数据_Android系统列表控件

    在android系统控件中,有多个控件可以展示列表数据. 一.ListView 该组件是android中最常用的一个UI组件,用于实现在屏幕上显示多个内容,以便于我们用手指进行滑动. ListView ...

  5. Element UI-给树形控件添加图标

    Element UI-给树形控件添加图标 element ui 提供的树形控件默认是不支持添加图标的,如下所示: 如果要想要在节点自定义树形控件的图标,可以使用slot-scope,代码如下: 其代码 ...

  6. 给表单控件添加超链接

    在HTML中给表单控件添加超链接 众所周知,常见的表单控件类型有text.password.button.submit.checkbox(复选框).radio(单选框).经常在做登录界面注册时会有一个 ...

  7. Android中给LineayLayout加边框

    给Android的LinearLayout加边框分为两种方式,给LinearLayout整体加边框和给某一个边加边框 第一种:给整体加边框 在drawable文件夹中新建shape资源文件,将下列代码 ...

  8. Eclipse Android项目 为控件添加了Id,但是在Java代码中提示xxx cannot be resolved or is not a field

    在Android开发过程中,常需要在布局文件中为控件添加Id,以便在Java代码中找到这个控件. 但在使用Eclipse进行开发的过程中,常会出现明明已经在Layout XML文件中为组件添加了Id, ...

  9. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

最新文章

  1. Java NIO系列教程(六) Selector
  2. flask + 蓝图 用 sqlalchemy 对 mysql 进行 增删查改 的 demo
  3. [js] Geolocation.getCurrentPosition()用来做什么的?在什么浏览器不受兼容?
  4. oracle sql server的区别,oracle与sqlserver的十大区别
  5. oracle linux内存推荐分配,[20191114]linux内存分配的讨论.txt
  6. 大文件表空间+创建大文件表空间+查询数据库表空间类型信息+查询数据库表空间类型信息...
  7. JavaNIO - Scatter Gather
  8. python中a=str(int(a))什么意思_python中a+=a和a=a+a的区别
  9. 组合体计算机绘图的实验原理,《机械制图及计算机绘图》实验教案.pdf
  10. 【有限元分析】提高有限元分析计算精度的h方法和p方法
  11. mysql PTA题解查询平均成绩最高的前三名同学
  12. 氨基酸在php的溶液中,氨基酸等电点的计算和应用.ppt
  13. vue 解决跨域时报错 Cannot read property ‘split‘ of null
  14. 《计算机通信与网络》学习笔记
  15. 中山大学软件工程c语言,2017年中山大学085212软件工程考研参考书目推荐
  16. oppo计算机怎么添加到桌面,OPPO怎么把快捷方式添加到桌面 OPPO把快捷方式添加到桌面方法...
  17. PyTorch学习笔记(20) ——激活函数
  18. java 处理物料清单_JAVA Spring MVC 物料清单BOM 展开实例
  19. oa系统服务器租赁,oa服务器租赁
  20. 蓝牙透传实验_蓝牙模块比较常见的通讯方式透传是什么

热门文章

  1. pandas基于日期信息(time or date)生成季度信息(quarter)实战:pandas基于日期信息列生成季度信息列、dt.quarter生成季度信息、dt.to_period生成季度信息
  2. R语言dataframe获取每个字段(特征)的数据类型实战:使用sapply函数获取每个字段(特征)的数据类型、通过柱状图可视化特征的种类以及个数
  3. Pandas把dataframe中的整数数值(integer)转化为时间(日期、时间)信息实战
  4. R单变量可视化(Histograms、 Index Plots、Time-Series Plots、Pie Charts)
  5. 文本处理三驾马车 • grep • sed • awk
  6. linux-多任务同步和互斥
  7. tf.keras.activations.sigmoid 激活函数 示例
  8. 目标检测--Object Detection via Aspect Ratio and Context Aware
  9. 解决Linux最大进程数和最大文件句柄问题
  10. ClickHouse系列教程