Android Shape的详解

1.代码

<?xml version="1.0" encoding="utf-8"?>
<!--
shape=["rectangle"(默认) | "oval" | "line" | "ring"]
矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)
下面的属性只有在android:shape="ring时可用:
innerRadius 尺寸,内环的半径
innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,
thickness 尺寸,环的厚度
thicknessRatio 浮点型,以环的宽度比率来表示环的厚度
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">

	<!--圆角
	同时设置五个属性radius无效
	radius设置四个角的半径
	topLeftRadius左上角半径
	bottomRightRadius右下角半径-->
    <corners
    android:radius="10dp"
    android:topLeftRadius="10dp"
    android:topRightRadius="10dp"
    android:bottomLeftRadius="10dp"
    android:bottomRightRadius="10dp"/>

  	<!--设置控件的高和宽
         如果你在外面也设置了可能就覆盖了-->
 	<size
    android:width="100dip"
    android:height="40dip"/>

    <!--间隔,各方向的间隔
        相当于padding设置paddingLeft、右、上、下一样
        如果你在外面也设置了可能就覆盖了-->
	<padding
    android:right="4dip"
    android:bottom="4dip"
    android:top="4dip"
    android:left="4dip"/>

	<!--填充的颜色
	color 设置控件里面填充的颜色-->
    <solid
    android:color="@color/red_common"/>

	<!--
	描边,设置控件的边框
	width设置边边的宽度
	color设置边边的颜色
	dashGap 设置虚线的间隔宽度
	dashWidth 设置虚线的宽度
	只要dashGap或dashWidth有一个0,就是实线-->
    <stroke
	android:width="1dip"
    android:dashWidth="0dip"
    android:dashGap="10dip"
	android:color="@color/white"/>

	<!--渐变
	注意:当设置填充颜色后,无渐变效果

	渐变角度angle 当angle=0时,渐变色是从左向右,
	然后逆时针方向转,当angle=90时为从下往上,
	angle必须为45的整数倍,仅在type="linear"有效

	useLevel true和false 如果要使用
	LevelListDrawable对象,就要设置为true

	渐变类型 type  linear和radial和sweep
	linear 线性渐变,这是默认设置
    radial 放射性渐变,以开始色为中心
    sweep 扫描线式的渐变

    centerX 渐变中心X点坐标的相对位置
    centerY 渐变中心Y点坐标的相对位置

    gradientRadius 整型 渐变色半径.
        当 android:type="radial" 时才使用,
        单独使用 android:type="radial"会报错。-->
    <gradient
    android:startColor="@color/green_common"
    android:centerColor="@color/red_common"
    android:endColor="@color/blue"
    android:useLevel="true"
    android:angle="90"
    android:type="linear"
    android:centerX="0"
    android:centerY="0"
    android:gradientRadius="90"/>

</shape>

2.详细讲解

shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下:

android:shape=["rectangle" | "oval" | "line" | "ring"] shape的形状,默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)

下面的属性只有在android:shape="ring时可用:

android:innerRadius 尺寸,内环的半径。

android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,例如,如果android:innerRadiusRatio,表示内环半径等于环的宽度除以5,这个值是可以被覆盖的,默认为9.

android:thickness 尺寸,环的厚度

android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,例如,如果android:thicknessRatio="2",那么环的厚度就等于环的宽度除以2。这个值是可以被android:thickness覆盖的,默认值是3.

android:useLevel boolean值,如果当做是LevelListDrawable使用时值为true,否则为false.

圆角

android:radius   整型 半径

android:topLeftRadius   整型 左上角半径

android:topRightRadius   整型 右上角半径

android:bottomLeftRadius 整型 左下角半径

android:bottomRightRadius 整型 右下角半径

渐变色

android:startColor  颜色值 起始颜色

android:endColor    颜色值 结束颜色

android:centerColor 整型   渐变中间颜色,即开始颜色与结束颜色之间的颜色

android:angle       整型   渐变角度(PS:当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。angle必须为45的整数倍)

android:type        ["linear" | "radial" | "sweep"] 渐变类型(取值:linear、radial、sweep) linear 线性渐变,这是默认设置;radial 放射性渐变,以开始色为中心;sweep 扫描线式的渐变

android:useLevel   ["true" | "false"] 如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色

android:gradientRadius 整型 渐变色半径.当 android:type="radial" 时才使用。单独使用 android:type="radial"会报错。

android:centerX     整型   渐变中心X点坐标的相对位置

android:centerY   整型   渐变中心Y点坐标的相对位置

内边距,即内容与边的距离

android:left   整型 左内边距

android:top   整型 上内边距

android:right   整型 右内边距

android:bottom 整型 下内边距

size 大小

android:width 整型 宽度

android:height 整型 高度

内部填充

android:color 颜色值 填充颜色

描边

android:width 整型 描边的宽度

android:color 颜色值 描边的颜色

android:dashWidth 整型 表示描边的样式是虚线的宽度, 值为0时,表示为实线。值大于0则为虚线。

android:dashGap   整型 表示描边为虚线时,虚线之间的间隔 即“

参考链接:

http://www.th7.cn/Program/Android/201503/401232.shtml

http://ju.outofmemory.cn/entry/126859

http://www.bkjia.com/Androidjc/1012885.html

http://blog.csdn.net/zhangxiweicaochen/article/details/41481463

http://blog.csdn.net/rflyee/article/details/20785495

http://blog.xianqu.org/2012/04/android-borders-and-radius-corners/

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 23:32:08

Android Shape的详解的相关文章

Android shape文件属性详解

Android开发中难免用到自定义的资源文件,其中很重要的便是Shape文件,Shape文件可以用来定义任意形状,常常用来做背景色等. Shape文件实际上也是.xml,其根元素是shape.下面将详细介绍Shape文件中各种元素和属性的含义. 根元素<shape>指定基本形状 shape属性指定基本形状,允许的值有:rectangle(矩形),oval(椭圆),line(线条), ring(环).默认的值是矩形,下面的代码定义了一个矩形: <?xml version="1.0

android shape使用详解

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 圆角 --> <corners android:radius="9dp" android:topLeftRadius="2dp" android

Android中shape属性详解

一.简单使用 刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用. 1.新建shape文件 首先在res/drawable文件夹下,新建一个文件,命名为:shape_radius.xml 内容是这样的:(先不需要理解,先看shape怎么用) [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="ht

android屏幕适配详解

android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如果是纯色背景,尽量使用android的shape 自定义. 5.如果需要在特定分辨率下适配,可以在res目录上新建layout

Android 四大组件 详解

[置顶] Android四大组件详解 分类: Android四大组件2013-02-09 16:23 19411人阅读 评论(13) 收藏 举报 Android开发 注:本文主要来自网易的一个博主的文章,经过阅读,总结,故留下文章在此 Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个

Android权限Permission详解

android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,Android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.INSTALL_PACKAGES 允许一个程序安装packages android.permission.INTERNAL_SYSTEM_WINDOW 允许打开窗口使用系统

Android进阶——Preference详解之Preference系的基本应用(三)

引言 前面一篇文章Android进阶--Preference详解之Preference系的基本应用和管理(二)介绍了二级Preference的使用和特点,接下来进入系统给我提供的底级Preference的使用CheckBox选择项CheckBoxPreference.EditText编辑对话框EditTextPreference.列表选择ListPreference.多项选择MultiSelectListPreference. 开关选择SwitchPreference的应用和管理.以期大家能在学

Android SlidingMenu 使用详解

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/36677279 很多APP都有侧滑菜单的功能,部分APP左右都是侧滑菜单~SlidingMenu 这个开源项目可以很好帮助我们实现侧滑功能,如果对SlidingMenu 还不是很了解的童鞋,可以参考下本篇博客.将侧滑菜单引入项目的方式很多中,本博客先通过例子介绍各种引入方式,然后给大家展示个实例:主布局ViewPager,左右各一个侧滑菜单的用法,差不多已经能满足大部分应用的需求

Android中Context详解 ---- 你所不知道的Context

转载至 :http://blog.csdn.net/qinjuning 前言:本文是我读<Android内核剖析>第7章 后形成的读书笔记 ,在此向欲了解Android框架的书籍推荐此书. 大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等都会利用到Context的相关方法 : 说它陌生,完全是 因为我们真正的不懂Context