文档章节

Shape Drawable Xml的background

SuShine
 SuShine
发布于 2015/06/24 13:55
字数 1151
阅读 10
收藏 0

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >


    <stroke
        android:width="0.5dip"
        android:color="#ff505050" />


    <corners android:radius="2dip" >
    </corners>


	<gradient android:startColor="#ff404040"
	    android:centerColor="#ff383838"
	    android:endColor="#ff404040"
	    />
</shape>




This is a generic shape defined in XML.

file location:
res/drawable/filename.xml
The filename is used as the resource ID.
compiled resource datatype:
Resource pointer to a  GradientDrawable.
resource reference:
In Java:  R.drawable.filename
In XML:  @[package:]drawable/filename
syntax:
<?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>
The shape drawable. This must be the root element.

attributes:

xmlns:android
StringRequired. Defines the XML namespace, which must be "http://schemas.android.com/apk/res/android".
android:shape
Keyword. Defines the type of shape. Valid values are:
Value Desciption
"rectangle" A rectangle that fills the containing View. This is the default shape.
"oval" An oval shape that fits the dimensions of the containing View.
"line" A horizontal line that spans the width of the containing View. This shape requires the <stroke> element to define the width of the line.
"ring" A ring shape.

The following attributes are used only when android:shape="ring":

android:innerRadius
Dimension. The radius for the inner part of the ring (the hole in the middle), as a dimension value or  dimension resource.
android:innerRadiusRatio
Float. The radius for the inner part of the ring, expressed as a ratio of the ring's width. For instance, if  android:innerRadiusRatio="5", then the inner radius equals the ring's width divided by 5. This value is overridden by  android:innerRadius. Default value is 9.
android:thickness
Dimension. The thickness of the ring, as a dimension value or  dimension resource.
android:thicknessRatio
Float. The thickness of the ring, expressed as a ratio of the ring's width. For instance, if android:thicknessRatio="2", then the thickness equals the ring's width divided by 2. This value is overridden by  android:innerRadius. Default value is 3.
android:useLevel
Boolean. "true" if this is used as a  LevelListDrawable. This should normally be "false" or your shape may not appear.
<corners>
Creates rounded corners for the shape. Applies only when the shape is a rectangle.

attributes:

android:radius
Dimension. The radius for all corners, as a dimension value or  dimension resource. This is overridden for each corner by the following attributes.
android:topLeftRadius
Dimension. The radius for the top-left corner, as a dimension value or  dimension resource.
android:topRightRadius
Dimension. The radius for the top-right corner, as a dimension value or  dimension resource.
android:bottomLeftRadius
Dimension. The radius for the bottom-left corner, as a dimension value or  dimension resource.
android:bottomRightRadius
Dimension. The radius for the bottom-right corner, as a dimension value or  dimension resource.

Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to not be rounded, a work-around is to use android:radiusto set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want rounded corners.

<gradient>
Specifies a gradient color for the shape.

attributes:

android:angle
Integer. The angle for the gradient, in degrees. 0 is left to right, 90 is bottom to top. It must be a multiple of 45. Default is 0.
android:centerX
Float. The relative X-position for the center of the gradient (0 - 1.0).
android:centerY
Float. The relative Y-position for the center of the gradient (0 - 1.0).
android:centerColor
Color. Optional color that comes between the start and end colors, as a hexadecimal value or color resource.
android:endColor
Color. The ending color, as a hexadecimal value or  color resource.
android:gradientRadius
Float. The radius for the gradient. Only applied when  android:type="radial".
android:startColor
Color. The starting color, as a hexadecimal value or  color resource.
android:type
Keyword. The type of gradient pattern to apply. Valid values are:
Value Description
"linear" A linear gradient. This is the default.
"radial" A radial gradient. The start color is the center color.
"sweep" A sweeping line gradient.
android:useLevel
Boolean. "true" if this is used as a  LevelListDrawable.
<padding>
Padding to apply to the containing View element (this pads the position of the View content, not the shape).

attributes:

android:left
Dimension. Left padding, as a dimension value or  dimension resource.
android:top
Dimension. Top padding, as a dimension value or  dimension resource.
android:right
Dimension. Right padding, as a dimension value or  dimension resource.
android:bottom
Dimension. Bottom padding, as a dimension value or  dimension resource.
<size>
The size of the shape.

attributes:

android:height
Dimension. The height of the shape, as a dimension value or  dimension resource.
android:width
Dimension. The width of the shape, as a dimension value or  dimension resource.

Note: The shape scales to the size of the container View proportionate to the dimensions defined here, by default. When you use the shape in an ImageView, you can restrict scaling by setting theandroid:scaleType to "center".

<solid>
A solid color to fill the shape.

attributes:

android:color
Color. The color to apply to the shape, as a hexadecimal value or  color resource.
<stroke>
A stroke line for the shape.

attributes:

android:width
Dimension. The thickness of the line, as a dimension value or  dimension resource.
android:color
Color. The color of the line, as a hexadecimal value or  color resource.
android:dashGap
Dimension. The distance between line dashes, as a dimension value or  dimension resource. Only valid if  android:dashWidth is set.
android:dashWidth
Dimension. The size of each dash line, as a dimension value or  dimension resource. Only valid if android:dashGap is set.
example:
XML file saved at  res/drawable/gradient_box.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

This layout XML applies the shape drawable to a View:

<TextView
    android:background="@drawable/gradient_box"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

This application code gets the shape drawable and applies it to a View:

Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);
see also:

本文转载自:http://blog.csdn.net/sfshine/article/details/8267241

共有 人打赏支持
SuShine
粉丝 126
博文 563
码字总数 154303
作品 0
朝阳
后端工程师
私信 提问
如何实现button点击时,按钮变色

需要建立三个xml ① buttonbackgroundselected.xml ② normalentrydialog.xml ③ buttonselector.xml 其中drawable中的buttonselector.xml中代码为 <?xml version="1.0" encoding="utf-8"?>......

OnOctober29
2016/03/30
510
0
Android Selector和Shape的使用方法

1.背景选择器(位于res/drawable/,使用方法:android:background="@drawable/button_selector")button_selector.xml shape_normal.xml shape_pressed.xml 2.文字颜色选择器(位于res/color......

ForingY
2016/07/07
30
0
ProgressBar进度条颜色改变

1.图像形式 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 定义轨道的背景 --> <item android:id="@android :id......

带梦想一7飞
2013/04/12
0
0
设置Button背景渐变效果和点击效果

1、设置背景渐变效果,在drawable目录下建buttonshape.xml文件, 内容为: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" a......

方毅超
2014/05/16
0
0
50个Android开发技巧(12 为控件添加圆角边框)

控件的圆角边框可以使你的App看起来更美观,其实实现起来也很简单。 (原文地址:http://blog.csdn.net/vector_yi/article/details/24463025) 以创建一个灰色的带圆角边框的Button为例: 一、...

____追梦人
2015/11/24
20
0

没有更多内容

加载失败,请刷新页面

加载更多

使用 HostAliases 向 Pod /etc/hosts 文件添加条目

默认 hosts 文件内容 通过 HostAliases 增加额外的条目 限制 为什么 Kubelet 管理 hosts文件? 当 DNS 配置以及其它选项不合理的时候,通过向 Pod 的 /etc/hosts 文件中添加条目,可以在 Po...

xiaomin0322
22分钟前
1
0
阿里高级技术专家:研发效能的追求永无止境

背景 大约在5年前,也就是2013年我刚加入阿里的时候,那个时候 DevOps 的风刚吹起来没多久,有家公司宣称能够一天发布几十上百次,这意味着相比传统软件公司几周一次的发布来说,他们响应商业...

阿里云官方博客
25分钟前
0
0
阻止冒泡事件

1、event.isImmediatePropagationStopped() $("#id").click( function(event) { event.isImmediatePropagationStopped()}); 2、event.stopPropagation $("#id").click( function(even......

yan_liu
31分钟前
2
0
shell实例100例《二》

11、题目要求 写一个脚本实现如下功能: 输入一个数字,然后运行对应的一个命令。 显示命令如下: *cmd meau** 1 - date 2 - ls 3 - who 4 - pwd 当输入1时,会运行date, 输入2时运行ls, 以此...

寰宇01
35分钟前
0
0
CentOS开机自启SVN

安装好 svn 服务后,默认是没有随系统启动自动启动的, CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务 于是查看 systemd 里 svn 的配置文件 /l...

临江仙卜算子
52分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部