Android shape drawable详解
2016-03-23 14:41
495 查看
在Android开发中经常需要自定义一些形状,这个时候就要用到shape drawable。
Android Developer : http://developer.android.com/intl/zh-cn/guide/topics/resources/drawable-resource.html#Shape
编译资源类型:GradientDrawable
资源引用:
- In Java: R.drawable.filename
- In XML: @drawable/filename
size和padding在具体控件也可以指定。
Android Developer : http://developer.android.com/intl/zh-cn/guide/topics/resources/drawable-resource.html#Shape
创建及使用shape drawable
文件位置:res/drawable/filename.xml编译资源类型:GradientDrawable
资源引用:
- In Java: R.drawable.filename
- In XML: @drawable/filename
具体结构:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring"] > <corners android:radius="integer" android:topLeftRadius="integer" android:topRightRadius="integer" android:bottomLeftRadius="integer" android:bottomRightRadius="integer" /> <gradient android:angle="integer" android:centerX="integer" android:centerY="integer" android:centerColor="integer" android:endColor="color" android:gradientRadius="integer" android:startColor="color" android:type=["linear" | "radial" | "sweep"] android:useLevel=["true" | "false"] /> <padding android:left="integer" android:top="integer" android:right="integer" android:bottom="integer" /> <size android:width="integer" android:height="integer" /> <solid android:color="color" /> <stroke android:width="integer" android:color="color" android:dashWidth="integer" android:dashGap="integer" /> </shape>
Elements说明
shape:根节点
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring"] //矩形|椭圆|线|圆环 //当android:shape="ring"时,还需要指定以下属性: android:innerRadius:指定内环的半径 android:thickness:指定环的厚度 android:innerRadiusRatio:宽度比,如果该值为2,则内环半径等于环的宽度除以5 android:thicknessRatio:宽度比,如果该值为2,则环的厚度等于环的宽度除以2 android:useLevel:当为ring时,该属性必须指定为false >
stroke:边框
<stroke android:width="dimension" //边框宽度 android:color="color" //边框颜色 android:dashWidth="dimension" //虚线宽度 android:dashGap="dimension" /> //虚线间隔
solid:填充色
<solid android:color="color" />
gradient:渐变
<gradient android:type=["linear" | "radial" | "sweep"] //共有3中渐变类型,线性渐变(默认)/放射渐变/扫描式渐变 android:angle="integer" //渐变角度,必须为45的倍数,0为从左到右,90为从上到下 android:centerX="float" //渐变中心X的相当位置,范围为0~1 android:centerY="float" //渐变中心Y的相当位置,范围为0~1 android:startColor="color" //渐变开始点的颜色 android:centerColor="color" //渐变中间点的颜色,在开始与结束点之间 android:endColor="color" //渐变结束点的颜色 android:gradientRadius="float" //渐变的半径,只有当渐变类型为radial时才能使用 android:useLevel=["true" | "false"] /> //使用LevelListDrawable时就要设置为true。设为false时才有渐变效果
corners:圆角半径
这个element仅仅在rectangle时使用<corners android:radius="integer" //该属性指定四个圆角的半径,不能和其他属性重用 android:topLeftRadius="integer" android:topRightRadius="integer" android:bottomLeftRadius="integer" android:bottomRightRadius="integer" />
size:shape大小
<size android:width="integer" android:height="integer" />
padding:内边距
<padding android:left="integer" android:top="integer" android:right="integer" android:bottom="integer" />
size和padding在具体控件也可以指定。
相关文章推荐
- Android命令之ps
- Fragment详解(六):Fragment与Menu
- android shape的使用
- Android多种View动画:EasyAndroidAnimations
- Fragment详解(五):Fragment与Activity交互
- Android FragmentPagerAdapter数据刷新notifyDataSetChanged没效果研究
- android知识点汇总
- Android Handler 异步消息处理机制的妙用 创建强大的图片加载类
- Fragment详解(四)Fragment生命周期
- Android 截屏并保存
- Android安全专项-Apk加固
- Android 快速开发系列 打造万能的ListView GridView 适配器
- 举例讲解Android中ViewPager中的PagerTitleStrip子控件
- Fragment详解(三):创建Fragment
- Android SparseArray浅析
- Fragment详解(二):Fragment 与支持库
- Android开发下遇到的一些奇葩问题处理
- Fragment详解(一):Fragment简介
- Android_Scroller类_用法
- 【Android】【滑屏】scrollTo,scrollBy