博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android XML shape 标签使用详解
阅读量:6832 次
发布时间:2019-06-26

本文共 3636 字,大约阅读时间需要 12 分钟。

hot3.png

本文所说的 Drawable 都特指 shape 标签定义的 Drawable

  • shape 标签定义的 Drawable 是哪种类型的 Drawable?
  • 使用 Drawable 有什么好处?
  • 什么情况下选择使用 Drawable,而不是使用一张图,反之呢?
  • shape 标签能定义多少种类型的 Drawable?(这是本文的重点,方便我这种懒惰的程序员直接拷贝代码修改)

  本文需要先了解shape标签的基本用法,关于Android shape标签的各个属性详解请移步:

  

首先给出GitHub地址,后续有新的内容会持续加入

shape标签能定义多少种类型的Drawable?

  shape 可以定义四种类型的几何图形,由 android:shape 属性指定

  line --> 线

  rectangle --> 矩形(圆角矩形)

  oval --> 椭圆,圆

  ring --> 圆环

 

  shape 可以定义边框属性

  有边框,无边框,虚线边框,实线边框

 

  shape 可以实现矩形圆角效果

  可以指定其中一个角或者多个角设置圆角效果

  指定圆角半径设置圆角的大小

 

  shape 可以实现三种渐变,由子标签 gradient 实现

  linear --> 线性渐变(水平,垂直,对角线三个渐变)

  sweep --> 扫描渐变(只支持顺时针方向,其实颜色反过来就跟逆时针一样的了)

  radial --> 径向渐变(由指定的中心点开始向外渐变,指定半径)

  xml 实现只支持三个颜色,startColor,CenterColor,endColor

  更多更详细关于 shape 的介绍请移步 

  由上面的组合可以定义很多 Drawable,下面依次进行介绍:

 

线(实线+虚线)

  823551-20161230192506804-1771692387.png

实线:line_solid.xml

虚线:line_dashed.xml

矩形(边框+填充)

  823551-20161230192532617-2025519762.png

矩形实线边框内部无填充:rect_solid_border.xml

矩形虚线边框内部无填充:rect_dashed_border.xml

矩形实线边框-内部填充:rect_solid_border_and_fill.xml

矩形虚线边框-内部填充:rect_dashed_border_and_fill.xml

圆角矩形

  823551-20161230192546414-1646088638.png

圆角矩形-只有边框:rect_rounded_border.xml

圆角矩形-只有内部填充:rect_rounded_fill.xml

圆角矩形-有边框有填充:rect_rounded_border_and_fill.xml

圆角矩形-左边圆角为一个半圆弧:rect_rounded_left_arc.xml

圆角矩形-左右两边都是半圆弧:rect_rounded_left_right_arc.xml

圆角矩形-左右两边都是半圆弧-带边框:rect_rounded_left_right_arc_border.xml

圆角矩形-圆:rect_rounded_arc.xml

圆角矩形-上下两边半圆弧:rect_rounded_top_bottom_arc.xml

渐变效果(以矩形为例)

  823551-20161230192604929-168022190.png

垂直线性渐变:rect_gradient_linear_vertical.xml

水平线性渐变:rect_gradient_linear_horizon.xml

对角线线性渐变:rect_gradient_linear_diagonal.xml

径向渐变:rect_gradient_radial.xml

扫描渐变:rect_gradient_sweep.xml

圆(边框+填充+渐变)

  823551-20161230192621414-2089978595.png

圆-边框:circle_border.xml

圆-填充:circle_fill.xml

圆-边框填充:circle_border_and_fill.xml

线性渐变:circle_gradient_linear.xml

径向渐变:circle_gradient_radial.xml

扫描渐变:circle_gradient_sweep.xml

椭圆(边框+填充+渐变)

  823551-20161230192637539-890434626.png

边框:oval_border.xml

填充:oval_fill.xml

边框+填充:oval_border_and_fill.xml

线性渐变:oval_gradient_linear.xml

径向渐变:oval_gradient_radial.xml

扫描渐变:oval_gradient_sweep.xml

圆环(边框+填充+渐变)

  823551-20161230192647523-42744149.png

环内填充:ring_fill.xml

圆环边框:ring_border.xml

边框+填充:ring_border_and_fill.xml

线性渐变:ring_gradient_linear.xml

径向渐变:ring_gradient_radial.xml

扫描渐变:ring_gradient_sweep.xml

转载于:https://my.oschina.net/u/2409806/blog/1574950

你可能感兴趣的文章
《WPF揭秘》勘误表
查看>>
From Word Embeddings To Document Distance
查看>>
linux运维学习之Oracle数据库的安装和扩展小优化
查看>>
珍爱生命,拒绝session。
查看>>
使用JDK原生api进行网络请求并比较
查看>>
网站安全问题的出现及解决方法
查看>>
java io FilterInputStream BufferedInputStream
查看>>
[转]shell脚本中echo显示内容带颜色
查看>>
循环队列的实现
查看>>
Hibernate的unsaved-value
查看>>
DNS故障处理一例(转)
查看>>
12月14日中国域名商解析量17强:易名增幅最大
查看>>
常见的WebPack文件、什么是WebPack
查看>>
DVD刻录机的使用与维护
查看>>
构建Postfix邮件系统(二) -- SMTP认证发信+SquirrelMail
查看>>
Oracle 使用concat函数需要注意的地方
查看>>
条件测试
查看>>
linux磁盘管理
查看>>
线上部署链路聚合bonding
查看>>
学LIUNX的常用英语补习
查看>>