东莞seo建站广告费,WordPress程序APP制作,无极网站网站涉案多少人被抓,北京市中交建设有限公司网站很多时候#xff0c;使用shape能够实现的效果#xff0c;你用一张图片也能够实现#xff0c;但问题是一张图片无论你怎么压缩#xff0c;它都不可能比一个xml文件小#xff0c;因此#xff0c;为了获得一个高性能的手机App#xff0c;我们在开发中应该遵循这样一个原则使用shape能够实现的效果你用一张图片也能够实现但问题是一张图片无论你怎么压缩它都不可能比一个xml文件小因此为了获得一个高性能的手机App我们在开发中应该遵循这样一个原则能够用shape实现的效果尽量不使用图片来实现。 今天我们就一起来看看shape的使用。 首先使用shape画的图形这个xml文件的根节点是shape如下 [java] view plaincopyprint? span stylefont-size:14px;shape xmlns:androidhttp://schemas.android.com/apk/res/android android:shaperectangle|oval|line|ring /spanpre namecode classjavaspan stylefont-size:14px;shape/span/pre shape取值有四种可以是rectangle长方形oval椭圆line线条ring圆环如果设置的话默认是长方形只有当我们要画的图形是ring的时候下面这几个属性才会生效 android:innerRadius内环的半径。android:innerRadiusRatio内环的比例比如这个值为2那么内环的半径就为环半径除以2如果设置了第一个属性则这个属性不起作用。android:thickness环的厚度。android:thicknessRatio环的厚度比例比如这个值为2那么环的厚度就为环半径除以2如果设置了第三个属性则这个属性不起作用。android:useLevel只有当我们的shape使用在LevelListDrawable中的时候这个值为true否则为false。 以上是shape节点在shape节点中我们还可以定义其他的节点 圆角 [java] view plaincopyprint? span stylefont-size:14px;corners android:radius20dp android:topLeftRadius20dp android:topRightRadius20dp android:bottomLeftRadius0dp android:bottomRightRadius0dp //span android:radius表示长方形四个角的半径当然也可以每个角单独设定后面单独设定的圆角半径会覆盖android:radius。 渐变 [java] view plaincopyprint? span stylefont-size:14px; gradient android:angle90 android:centerColor#9ACD32 android:endColor#9AC0CD android:startColor#9AFF9A android:typelinear android:useLevelfalse //span android:angle90表示渐变的起始位置这个值必须为45的倍数包括00表示从左往右渐变逆时针旋转依次是4590135.....90表示从下往上渐变270表示从上往下渐变剩下的大家依次去推理。android:startColor#9AFF9A表示渐变的起始颜色android:centerColor#9ACD32表示渐变的过渡颜色android:endColor#9AC0CD表示渐变的结束颜色type表示渐变的类型有三种分别是linear线性变化,radial辐射渐变以及sweep扫描渐变当type为radial时我们要设置android:gradientRadius这个表示渐变的半径线性渐变和扫描渐变不需要设置 填充 [java] view plaincopyprint? span stylefont-size:14px;solid android:color#ADFF2F //span 这个比较简单不多说。 描边 [java] view plaincopyprint? span stylefont-size:14px;color:#000000;stroke android:width1dp android:color#FFFF00 android:dashWidth15dp android:dashGap5dp //span android:dashWidth表示虚线的宽度android:dashGap表示虚线之间的间隔以上两个属性如果不设置则为实线 大小 [java] view plaincopyprint? span stylefont-size:14px;size android:width1dp android:height1dp //span 这个表示该shape的大小默认情况下shape的大小与它所在的容器大小成正比。如果我们在ImageView中使用这个shape那么可以通过android:scaleTypecenter属性来限制这种缩放。 当然还有一种padding这和我们在xml文件中用的一样我这里就不多说了。 最后基于以上几种特性我做了以下几种效果供大家参考。 示例效果代码下载https://github.com/lenve/shape 非常炫的效果转载于:https://www.cnblogs.com/earl-yongchang/p/4929407.html