shape的基本用法
来源:互联网 发布:python .shift[1] 编辑:程序博客网 时间:2024/05/29 16:07
小源
我梦想那么大,我却离的那么远....
Android shape属性详解
版权声明:本文为博主原创文章,未经博主允许不得转载。
转载请注明出处:http://blog.csdn.net/xiaoyuan511
一、概述
最近太忙了,几乎每天都在做项目。同时写两个项目的感觉真爽。
在我们开发中,会经常遇到shape这种属性,这种属性可以在没有美工的情况照样可以实现我们想要的效果。自动动手,丰衣足食。
二、效果图
二、属性
三、基本属性
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.- ring(环形特有属性)
四、问题
在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
- 上一篇优雅地为RecyclerView加上头部、下拉刷新、自动加载
- 下一篇仿微信添加标签效果
参考知识库
- 猜你在找
- 极客导航-程序员自己的导航
程序猿自己的导航网站
极客导航- 关注程序猿那点事
- 个人资料
- 访问:174266次
- 积分:2841
- 等级: 积分:2841
- 排名:第10720名
- 原创:91篇
- 转载:4篇
- 译文:1篇
- 评论:113条
u011310942
- 文章分类
- 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)
- shape的基本用法
- Selector与Shape的基本用法
- android UI之shape的基本用法
- Android基础:shape的基本用法
- Android基础:shape的基本用法
- Android初级教程:shape的基本用法
- Android基础:shape的基本用法
- Android选择器-shape的基本用法
- Android基础:shape的基本用法
- Android_布局Selector与Shape的基本用法
- Android: Selector 与 Shape 属性的一些基本用法
- 学习笔记_android之Selector与Shape的基本用法
- andorid 的shape用法
- shape 的一般用法
- android shape的用法
- shape的用法
- Shape的用法
- Android shape的用法
- OOP/第四章 借口
- Codeforces Round #407 (Div. 2) B
- C++-STL-(map用法)
- 微软请你学Linux,你没有听错,是Linux系列培训4月~6月,共16期,4月5日起盛情开始!微软请你!!!
- redis-04-配置文件
- shape的基本用法
- Java Web基础(Servlet)
- Java从入门到弃坑第三天
- 循环小数
- React Native实战之flexbox布局(RN基础)
- 01:整型数据类型存储空间大小
- Tomcat的使用笔记
- java设计模式之观察者模式
- css3:border-image边框图像详解