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

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

那么 除了使用drawable这样的图片外,还有其他方法吗?

就谈一下 自定义图形shape, Android上支持以下几种属性 gradient、stroke、corners、padding、 solid 等。

[html]    view plain  copy  print  ?
  1. 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. 16.     < padding      
  17. 17.         android:left = "10dp"      
  18. 18.         android:top = "10dp"      
  19. 19.         android:right = "10dp"      
  20. 20.         android:bottom = "10dp"   />      
  21. 21. </ shape >      

solid: 实心,就是填充的意思 
android:color 指定填充的颜色 
gradient : 渐变 
android:startColor  android: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 :圆角 

android:radius 为角的弧度,值越大角越圆。 


原文地址:http://www.tuicool.com/articles/aUVRvqb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值