android通过shape.xml制作渐变背景

编写xml文件放到res/drawable-*/下面
最基本的写法如下

<?xml version="1.0" encoding="utf-8"?>    
<shape xmlns:android="http://schemas.android.com/apk/res/android">    
    <gradient     
        android:startColor="#3A3C39"     
        android:endColor="#181818"    
        android:angle="270"    
     />    
    <corners android:radius="0dp" />    
</shape>

  使用方法:android:background="@drawable/shape_background_grey"   

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor
="#3A3C39"
android:endColor
="#181818"
android:angle
="270"
/>
<corners android:radius="0dp"/>
</shape>

  使用方法:android:background="@drawable/shape_background_grey" 

其中 android:angle="270"  代表方向, 270表示从上到下,180表示从右到左,默认从左 

复杂一点的写法如下

<shape xmlns:android="http://schemas.android.com/apk/res/android"  
android:shape
="rectangle">
<gradient android:type="radial" android:gradientRadius="250"
android:startColor
="#E9E9E9" android:endColor="#D4D4D4"/>
</shape>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="0" android:startColor="#FFdaf3fc"
android:centerColor
="#FFd4e9a9" android:endColor="#FFdaf3fc"/>
</shape>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape
="rectangle">
<gradient android:type="radial" android:gradientRadius="250"
android:startColor
="#E9E9E9" android:endColor="#D4D4D4"/>
</shape>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="0" android:startColor="#FFdaf3fc"
android:centerColor
="#FFd4e9a9" android:endColor="#FFdaf3fc"/>
</shape>

  在这里要注意android:type="radial"类型的使用会有不同的效果 

android:centerColor="#FFd4e9a9" 通常这个也不是被人常用 

<?xml version="1.0" encoding="utf-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape
="rectangle">
<gradient android:startColor="#509245" android:centerColor="#3e8532"
android:endColor
="#509245" android:type="linear" android:angle="90"
android:centerX
="0.5" android:centerY="0.5"/>
<padding android:left="7dp" android:top="7dp" android:right="7dp"
android:bottom
="7dp"/>
<corners android:radius="4dp"/>
</shape>

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape
="rectangle">
<gradient android:startColor="#509245" android:centerColor="#3e8532"
android:endColor
="#509245" android:type="linear" android:angle="90"
android:centerX
="0.5" android:centerY="0.5"/>
<padding android:left="7dp" android:top="7dp" android:right="7dp"
android:bottom
="7dp"/>
<corners android:radius="4dp"/>
</shape>

  android:shape 配置的是图形的形式,主要包括方形、圆形等,上边代码为方形。

gradient节点主要配置起点颜色、终点颜色、中间点的坐标、中间点的颜色、渐变角度(90度为上下渐变,0为左右渐变),padding节点主要配置上下左右边距,corners节点配置四周园角的半径。

posted @ 2011-08-01 10:51  还是你最好  阅读(14161)  评论(0编辑  收藏  举报