Android中使用shape自定义纯色图片总结
android中通过自定义xml实现你需要的shape效果 xml属性配置,
在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片,然后在写一个selector的xml文件放在drawable文件夹中,但是 这样drawable中的内容就非常多,就容易使apk变大。
那么除了使用drawable这样的图片外,就是自定义图形shape,Android上支持以下几种属性gradient、stroke、corners、padding、solid等。
- <shape>
- 2. <!-- 实心 -->
- 3. <solid android:color="#ff9d77"/>
- 4. <!-- 渐变 -->
- 5. <gradient
- 6. android:startColor="#ff8c00"
- 7. android:endColor="#FFFFFF"
- 8. android:angle="270" />
- 9. <!-- 描边 -->
- 10. <stroke
- 11. android:width="2dp"
- 12. android:color="#dcdcdc" />
- 13. <!-- 圆角 -->
- 14. <corners
- 15. android:radius="2dp" />
- <! 内边距>
- 16. <padding
- 17. android:left="10dp"
- 18. android:top="10dp"
- 19. android:right="10dp"
- 20. android:bottom="10dp" />
- 21.</shape>
solid:实心,就是填充的意思
android:color指定填充的颜色
gradient:渐变 gradient定义该形状里面为渐变色填充,
gradient节点主要配置起点颜色、终点颜色、中间点的坐标、中间点的颜色、渐变角度(90度为上下渐变,0为左右渐变)
startColor起始颜色,endColor结束颜色
android:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。
stroke:描边
android:width="2dp" 描边的宽度,android:color
描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
corners:圆角
corners节点配置四周园角的半径
android:radius 为角的弧度,值越大角越圆。
padding:边框与背景色的内边距
padding节点主要配置上下左右边距, <?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" ><!-- android:shape="" 表示是圆角矩形还是椭圆等等 -->
<solid android:color="#FFFFFF"/> <!-- 背景颜色 -->
<!-- padding 表示内部空间距离背景图片内部边距 的距离 -->
<padding android:left="5dp" android:top="5dp"
android:right="5dp" android:bottom="5dp" />
<stroke android:width="0.5dp" android:color="#FAA330"/> <!-- 图片边框属性 -->
<corners
android:radius="9dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:bottomRightRadius="2dp"/> <!-- 圆角的程度 -->
<gradient
android:startColor="#FBA330"
android:centerColor="#FBA330"
android:endColor="#FBA330"
android:type="linear"//
android:angle="90"
android:centerX="0.5"
android:centerY="0.5" />
</shape>
android 颜色渐变是指通知xml或者java代码,设置相关参数,是界面的某个指定的视图显示成从开始位置的颜色,逐渐过度到结尾位置的颜色的技术。
android颜色渐变的分类有:
LinearGradient线性渐变
RadialGradient镜像渐变
SweepGradient角度渐变
一、LinearGradient线性渐变
顾名思义,是只颜色在一个直线方向上逐渐改变。
文件代码:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval" ><gradientandroid:endColor="#0000FF"android:startColor="#FF0000"android:type="linear" /></shape>
效果:
二、RadialGradient镜像渐变
镜像渐变就是楼主问的问题了:只要将type设置为oval,然后增加
android:gradientRadius
属性。
楼主特殊要求是圆形的话,需要在shape里面添加
android:shape="oval"
文件代码:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval" ><gradientandroid:endColor="#0000FF"android:gradientRadius="100%p"android:startColor="#FF0000"android:type="linear" /></shape>
效果:
三、 SweepGradient角度渐变
是指以中心点为射线的一个断点,顺时针旋转所扫过的区域,颜色逐渐改变的一种渐变方式
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" ><gradientandroid:endColor="#0000FF"android:startColor="#FF0000"android:type="sweep" /></shape>
效果图:
Android中使用shape自定义纯色图片总结相关推荐
- Android中RatingBar的自定义效果
Android中RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出, ...
- java安卓图片全屏_在Android中全屏显示GIF图片(演示代码)
[实例简介] 在Android中全屏显示GIF图片(演示代码),详细内容请参考:http://blog.csdn.net/u012939909/article/details/77418173 [实例 ...
- Android中使用ImageLoader加载图片
Android上让人头疼的莫过于从网络上获取图片,然后显示图片,最后还要考虑到图片的回收问题,这之间只要有任何一个环节有问题都可能直接OOM.尤其在需要展示图片的列表页面,会加载大量网络上的图片,每当 ...
- Android中 Flutter实现自定义的APPbar
Android中Flutter自定义APPbar的实现 目录 源码解读 用法 代码 具体的用法 效果图: 目录 flutter最近火起来了,相信他能干什么事,想必大家都知道,这里就不累赘了,直接上干货 ...
- Android开发之shape自定义ProgressBar进度条样式
1.xml代码方式一:如下(此shape是放到drawable目录下的) <rotate xmlns:android="http://schemas.android.com/apk/r ...
- Android中使用shape来定义控件的显示属性
参见: http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6087.html 或者 http://kofi1122.blog.51cto.com/2 ...
- android 实现异步加载图片,Android中ImageView异步加载图片类
本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...
- Android中AS创建点9图片与使用
软件环境:Android Studio 2.1.2.win10家庭版电脑 .9图片,对于Android开发者而言,想必并不陌生.只是偶尔开发中涉及,难免因搁置太久,已忘却.今有重拾此知识,现亲测汇总 ...
- Android中利用shape属性自定义设置Button按钮
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
最新文章
- shell脚本执行及配置文件
- 不会但一定要了解的方面,python列表解析方式
- 【活动报名】2021蚂蚁链开发者大会
- gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
- 命令行shell 用于SQLite
- 重定向和请求转发后面加“return;”语句
- AE intersect、clip的实现
- c语言跑马灯循环三次停止,跑马灯代码 连续不间断的跑马灯的代码(js)
- 模型机CPU设计——ALU函数发生器(6)
- 学校计算机采购清单表,附表:采购清单明细表.doc
- 互联网运营面试题_必看❗️面试互联网运营常见问题及答案
- 微服务 杜家豪_搞好“微建设微服务”也是大业绩
- mysql数据库实验任务二_MySQL数据库实验:任务二 表数据的插入、修改及删除
- Mac在线视频下载工具:PullTube
- 浙江大学计算机学霸作息,浙大学霸学子作息表:精确到分钟!最怕优秀的人比我们还努力!...
- solidity 基础讲解
- Linux Debian: 命令行连接 wifi 配置,解决在DELL戴尔和Thinkpad联想上Wicd找不到无线网问题 (用 ifup 或 nmcli )
- 【EOS】DAPP开源项目
- 易语言大漠插件模块制作后台找字FindStr及游戏实战
- google为何选择kotlin?kotlin如何解决java开发痛点【续】?