shape的基本用法

来源:互联网 发布:python .shift[1] 编辑:程序博客网 时间:2024/05/29 16:07
CSDN日报20170403 ——《该不该离职?它说了算!》    程序员你的职场该这么规划!    Python数据分析与机器学习    博客搬家,有礼相送

Android shape属性详解

标签: shape
300人阅读 评论(0)收藏举报
本文章已收录于:

转载请注明出处:http://blog.csdn.net/xiaoyuan511

一、概述

最近太忙了,几乎每天都在做项目。同时写两个项目的感觉真爽。
在我们开发中,会经常遇到shape这种属性,这种属性可以在没有美工的情况照样可以实现我们想要的效果。自动动手,丰衣足食。

二、效果图

这里写图片描述

二、属性

shape描述rectangle矩形(默认)oval椭圆line直线ring环形

三、基本属性

基本属性描述Corners圆角Solid内部填充颜色Gradient渐变色Stroke这是描边属性,可以定义描边的宽度,颜色,虚实线等Size定义控件大小padding内部边距
  • Corners

    android:radius=”dimension” 全部的圆角半径
    android:topLeftRadius=”dimension” 左上角的圆角半径
    android:topRightRadius=”dimension” 右上角的圆角半径
    android:bottomLeftRadius=”dimension” 左下角的圆角半径
    android:bottomRightRadius=”dimension” 右下角的圆角半径

  • Solid

    android:color=”color” 填充颜色

  • Gradient

    android:type=[“linear” | “radial” | “sweep”] 3中渐变类型,线性渐变(默认)/放射渐变/扫描式渐变
    android:angle=”integer” 渐变角度,必须为45的倍数,0为从左到右,90为从上到下 (只对线性渐变有效)
    android:centerX=”float” 渐变中心X的相当位置,范围为0~1
    android:centerY=”float” 渐变中心Y的相当位置,范围为0~1
    android:startColor=”color” 渐变开始点的颜色
    android:centerColor=”color” 渐变中间点的颜色,在开始与结束点之间
    android:endColor=”color” 渐变结束点的颜色
    android:gradientRadius=”float” 渐变的半径,只有当渐变类型为radial时才能使用
    android:useLevel=[“true” | “false”] /> 使用LevelListDrawable时就要设置为true。设为false时才有渐变效果

  • stroke

    android:width=”dimension” 描边的宽度
    android:color=”color” 描边的颜色
    以下两个属性设置虚线
    android:dashWidth=”dimension” 虚线的宽度,值为0时是实线
    android:dashGap=”dimension” 虚线间隔

  • size

    android:width=”dimension” 控件宽度
    android:height=”dimension” 控件高度

  • padding

    android:left=”dimension” 左
    android:top=”dimension” 上
    android:right=”dimension” 右
    android:bottom=”dimension” 下

  • 特殊

    • ring(环形特有属性)

    android:innerRadius 尺寸,内环的半径。
    android:thickness 尺寸,环的厚度
    android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,
    例如,如果android:innerRadiusRatio,表示内环半径等于环的宽度除以5,这个值是可以被覆盖的,默认为9.
    android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,例如,如果android:thicknessRatio=”2”,
    那么环的厚度就等于环的宽度除以2。这个值是可以被android:thickness覆盖的,默认值是3.
    android:useLevel boolean值,如果当做是LevelListDrawable使用时值为true,否则为false.

四、问题

在xml里面已经设置BackGround已经为shape属性了。如果在代码在设置BackGround会把shape的属性覆盖掉,我们怎么能保证shape属性不变,又可以切换颜色那?当然定义多个shape.xml也可以实现的。

我可以通过 GradientDrawable这个类来实现我们的想要的效果

 findViewById(R.id.rectangle).setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            position++;            GradientDrawable myGrad = (GradientDrawable) allRectangle.getBackground();            switch (position % 6) {                case 0:                    myGrad.setColor(Color.argb(255, 249, 122, 3));                    break;                case 1:                    myGrad.setColor(Color.argb(255, 240, 94, 63));                    break;                case 2:                    myGrad.setColor(Color.argb(255, 96, 79, 171));                    break;                case 3:                    myGrad.setColor(Color.argb(255, 36, 198, 89));                    break;                case 4:                    myGrad.setColor(Color.argb(255, 94, 92, 93));                    break;                case 5:                    myGrad.setColor(Color.argb(255, 65, 179, 205));                    break;            }        }    });

这样就可以实现我们想要的效果了。

五、总结

上面这些基本上是shape属性所有用法了,没有美工我照样可以做出好看的效果!

六、源码

点击下载

七、欢迎大家访问我的网站和我的公众号

极客导航—程序员自己的导航网站

极客导航

程序猿那点事—程序员的心灵港湾
关注我

1
0
 
 

参考知识库

更多资料请参考:
猜你在找
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
快速回复TOP
    极客导航-程序员自己的导航
    程序猿自己的导航网站
    极客导航
    关注程序猿那点事
    微信关注我的公众号
    个人资料

    u011310942
    1
    • 访问:174266次
    • 积分:2841
    • 等级:
      积分:2841
    • 排名:第10720名
    • 原创:91篇
    • 转载:4篇
    • 译文:1篇
    • 评论:113条
    文章分类
  • Android生涯随便记录(79)
  • Android简单工具(1)
  • Java一些知识点(4)
  • Html简单学习(4)
  • IOS简单学习(5)
  • Git版本控制之道(1)
  • 面试题(1)
  • 生活记录(1)
    文章存档
  • 2017年03月(2)
  • 2016年11月(5)
  • 2016年05月(1)
  • 2016年03月(4)
  • 2015年11月(1)
  • 2015年04月(7)
  • 2014年10月(8)
  • 2014年09月(18)
  • 2014年08月(11)
  • 2014年07月(8)
  • 2014年05月(1)
  • 2014年02月(4)
  • 2014年01月(1)
  • 2013年12月(14)
  • 2013年11月(11)
    阅读排行
  • 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)(一)(10534)
  • Android日期对话框NumberPicker的用法教程(8731)
  • 使用FragmentTabhost代替Tabhost(6008)
  • Android textview实现删除线(5758)
  • 在Android中使用Application保存全局变量(5749)
  • Android EditText监听小数点让用户只能输入小数点后两位(4484)
  • Android PopupWindow显示位置和显示大小(4411)
  • Viewpager 设置预加载个数(3570)
  • Android系统架构图(3233)
  • ViewPager+TabLayout注意(版本号问题跟不显示Tab的原因)(3103)
    收藏助手
    0 0
    原创粉丝点击