文章出处:http://blog.csdn.net/shift_wwx


目前发现shape是用于TextView、EditText、Button的background用,当然也可以配合selector使用,简单说就跟一般的图片是一样的,只不过这里变成了手动绘制了。


先show上code:

<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"       android:shape="rectangle" >        <solid android:color="#FFFFAEB9" />        <stroke         android:width="8dp"        android:color="@android:color/white"/>        <padding         android:left="20dp"        android:right="20dp"        android:top="20dp"        android:bottom="20dp"/>        <corners         android:radius="5dp"        android:topLeftRadius="10dp"        android:topRightRadius="10dp"        android:bottomLeftRadius="10dp"        android:bottomRightRadius="10dp"/>        <gradient         android:startColor="#FFFFD700"        android:endColor="#FF483D8B"        android:angle="42"        android:type="radial"        android:gradientRadius="40"/>   </shape></span>

android:shape

属性值有:"rectangle" | "oval" | "line" | "ring"

rectangle是矩形,也是默认值

oval是椭圆形,如果设置为这个属性corners就没有效果了

line是直线,ring是环形

1) solid :填充颜色

只有一个属性android:color,表示需要填充的颜色,默认应该是是全透明色。

即跟

<span style="font-size:14px;">android:color="@android:color/transparent"</span>

效果是一样的。


2) stroke:边框、描边

<span style="font-size:14px;">    <stroke         android:width="8dp"        android:color="@android:color/white"/></span>
android:width 表示实线框的宽度

android:color 表示边框的颜色

另外,还有两个属性代表虚线框:

android:dashWidth="5dp" 表示虚线框的宽度

android:dashGap="3dp" 表示虚线框的虚线之间的间隔

这两个属性任意一个属性为0时,代表的是实线


3) padding:间隔

<span style="font-size:14px;">    <padding         android:left="8dp"        android:right="8dp"        android:top="8dp"        android:bottom="8dp"/></span>
相当于背景沿着上、下、左、右分别拉伸一定的间隔,也就是说中间的填充分别向四个方向拉伸一定间隔


4) corners:圆角

<span style="font-size:14px;">    <corners         android:radius="5dp"        android:topLeftRadius="10dp"        android:topRightRadius="10dp"        android:bottomLeftRadius="10dp"        android:bottomRightRadius="10dp"/></span>
android:radius:radius是半径的意思,可以想象一个半径越小,这个弧度应该越小,半径越大这个弧度也是越大的,但是肯定有个上限,超过了就看不到效果了

android:topLeftRadius:左上角弧度

android:topRightRadius:右上角弧度

android:bottomLeftRadius:左下角弧度,网上的很多资料应该是sdk版本比较旧,这个属性当时是右下角,但是我在4.4上是左下角,google应该是修正过来了

android:bottomRightRadius:右下角


5) gradient:渐变

<span style="font-size:14px;">    <gradient         android:startColor="#FFFFD700"        android:endColor="#FF483D8B"        android:angle="45"        android:type="sweep"/></span>
gradient的属性稍微繁琐一点。

android:startColor:渐变的起始色,如果只设置这个不设置endColor,会向底图颜色渐变

android:endColor: 渐变的终止色,同样如果没有设置startColor,会以底图颜色为起点色

android:angle: 配合渐变,这个值为0-315,设置必须为45的倍数,不然会报错的。0就是左边,45就是左下角,逆时针依次增加

android:type: 渐变方式,属性有linear、sweep、radial,默认是linear即线性渐变。angle属性也只有在type是linear的时候有效,其他的时候是没有效果的。radial的意思是从中心渐变,如果type的属性值为radial的时候,必须要设置渐变半径即另一个属性gradientRadius。

android:gradientRadius:渐变半径配合type为radial使用

另外还有三个属性需要看一下source code解释,暂时未知

android:centerX

android:centerY

android:useLevel





更多相关文章

  1. Android:view常用属性和操作方法
  2. android drawable 属性描述
  3. android xml之动画篇 alpha、scale、translate、rotate、set的属
  4. 【Android开发经验】android:windowSoftInputMode属性详解
  5. android:excludeFromRecents 属性需要注意的小地方
  6. Android属性动画—实现第三方登录的上拉展开,下拉隐藏
  7. Android xml application属性详解

随机推荐

  1. android语音识别和语音播报相关资料总结
  2. Android(安卓)点击按钮,文字改变颜色
  3. android 给图片加水印
  4. android 使用动画 Button移动后不响应点
  5. Android(安卓)之 ProgressBar用法介绍
  6. MotionEvent 概述
  7. Android中的MD5加密
  8. Android自定义Dialog以控制其位置和宽高
  9. OpenGL ES教程V之更多3D模型(原文对照)
  10. Android(Java):Android(安卓)jni源代码