shape的基本用法

    xiaoxiao2021-03-25  105

    小源

    我梦想那么大,我却离的那么远....

    目录视图 摘要视图 订阅 日报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     上一篇优雅地为RecyclerView加上头部、下拉刷新、自动加载 下一篇仿微信添加标签效果

    参考知识库

    更多资料请参考: 猜你在找 查看评论 * 以上用户言论只代表其个人观点,不代表网站的观点或立场 极客导航-程序员自己的导航
    程序猿自己的导航网站
    极客导航 关注程序猿那点事 微信关注我的公众号 个人资料 u011310942 访问: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) 收藏助手
    转载请注明原文地址: https://ju.6miu.com/read-19485.html

    最新回复(0)