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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章