android中通过自定义xml实现你需要的shape效果 xml属性配置,

在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片,然后在写一个selector的xml文件放在drawable文件夹中,但是 这样drawable中的内容就非常多,就容易使apk变大。

那么除了使用drawable这样的图片外,就是自定义图形shape,Android上支持以下几种属性gradient、stroke、corners、padding、solid等。

  1. <shape>
  2. 2.    <!-- 实心 -->
  3. 3.    <solid android:color="#ff9d77"/>
  4. 4.    <!-- 渐变 -->
  5. 5.    <gradient
  6. 6.        android:startColor="#ff8c00"
  7. 7.        android:endColor="#FFFFFF"
  8. 8.        android:angle="270" />
  9. 9.    <!-- 描边 -->
  10. 10.    <stroke
  11. 11.        android:width="2dp"
  12. 12.        android:color="#dcdcdc" />
  13. 13.    <!-- 圆角 -->
  14. 14.    <corners
  15. 15.        android:radius="2dp" />
  16. <! 内边距>
  17. 16.    <padding
  18. 17.        android:left="10dp"
  19. 18.        android:top="10dp"
  20. 19.        android:right="10dp"
  21. 20.        android:bottom="10dp" />
  22. 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自定义纯色图片总结相关推荐

  1. Android中RatingBar的自定义效果

    Android中RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出, ...

  2. java安卓图片全屏_在Android中全屏显示GIF图片(演示代码)

    [实例简介] 在Android中全屏显示GIF图片(演示代码),详细内容请参考:http://blog.csdn.net/u012939909/article/details/77418173 [实例 ...

  3. Android中使用ImageLoader加载图片

    Android上让人头疼的莫过于从网络上获取图片,然后显示图片,最后还要考虑到图片的回收问题,这之间只要有任何一个环节有问题都可能直接OOM.尤其在需要展示图片的列表页面,会加载大量网络上的图片,每当 ...

  4. Android中 Flutter实现自定义的APPbar

    Android中Flutter自定义APPbar的实现 目录 源码解读 用法 代码 具体的用法 效果图: 目录 flutter最近火起来了,相信他能干什么事,想必大家都知道,这里就不累赘了,直接上干货 ...

  5. Android开发之shape自定义ProgressBar进度条样式

    1.xml代码方式一:如下(此shape是放到drawable目录下的) <rotate xmlns:android="http://schemas.android.com/apk/r ...

  6. Android中使用shape来定义控件的显示属性

    参见:  http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6087.html  或者 http://kofi1122.blog.51cto.com/2 ...

  7. android 实现异步加载图片,Android中ImageView异步加载图片类

    本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...

  8. Android中AS创建点9图片与使用

    软件环境:Android  Studio 2.1.2.win10家庭版电脑 .9图片,对于Android开发者而言,想必并不陌生.只是偶尔开发中涉及,难免因搁置太久,已忘却.今有重拾此知识,现亲测汇总 ...

  9. Android中利用shape属性自定义设置Button按钮

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

最新文章

  1. shell脚本执行及配置文件
  2. 不会但一定要了解的方面,python列表解析方式
  3. 【活动报名】2021蚂蚁链开发者大会
  4. gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
  5. 命令行shell 用于SQLite
  6. 重定向和请求转发后面加“return;”语句
  7. AE intersect、clip的实现
  8. c语言跑马灯循环三次停止,跑马灯代码 连续不间断的跑马灯的代码(js)
  9. 模型机CPU设计——ALU函数发生器(6)
  10. 学校计算机采购清单表,附表:采购清单明细表.doc
  11. 互联网运营面试题_必看❗️面试互联网运营常见问题及答案
  12. 微服务 杜家豪_搞好“微建设微服务”也是大业绩
  13. mysql数据库实验任务二_MySQL数据库实验:任务二 表数据的插入、修改及删除
  14. Mac在线视频下载工具:PullTube
  15. 浙江大学计算机学霸作息,浙大学霸学子作息表:精确到分钟!最怕优秀的人比我们还努力!...
  16. solidity 基础讲解
  17. Linux Debian: 命令行连接 wifi 配置,解决在DELL戴尔和Thinkpad联想上Wicd找不到无线网问题 (用 ifup 或 nmcli )
  18. 【EOS】DAPP开源项目
  19. 易语言大漠插件模块制作后台找字FindStr及游戏实战
  20. google为何选择kotlin?kotlin如何解决java开发痛点【续】?

热门文章

  1. SpringBoot中Hibernate-validator的使用
  2. 线程同步(临界区、互斥量、事件、信号量)
  3. 移动浏览器内核及连接数
  4. KETTLE实现循环批量多表抽取添加字段
  5. 计算机组成与嵌入式系统 百度云,计算机组成及嵌入式系统.pdf
  6. C/C++编程学习 - 第19周 ⑩ 派
  7. 【基于RT-Thread+RA6M4的智能鱼缸系统设计之鱼我所欲也】
  8. jsp醒目_40个醒目的精美插图网站[展示柜]
  9. jmeter常用逻辑控制器的使用(如果(if)控制器)
  10. 无人驾驶—激光雷达与相机