Shape Drawable----This is a generic shape defined in XML.

前端之家收集整理的这篇文章主要介绍了Shape Drawable----This is a generic shape defined in XML.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Shape Drawable


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:topLeftRadiusandroid:topRightRadiusandroid:bottomLeftRadiusandroid:bottomRightRadius /><gradientandroid:angleandroid:centerXandroid:centerYandroid:centerColorandroid:endColorcolorandroid:gradientRadiusandroid:startColorandroid:type["linear""radial""sweep"]
    android:useLevel["true""false"<paddingandroid:leftandroid:topandroid:rightandroid:bottom<sizeandroid:widthandroid:height<solidandroid:color<strokeandroid:dashWidthandroid:dashGap</shape>
ELEMENTS:
<shape>
The shape drawable. This must be the root element.

attributes:

xmlns:android
String. required.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 whenandroid: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,229); text-decoration:none" rel="nofollow">dimension resource.
android:thicknessRatio
Float. The thickness of the ring,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,229); text-decoration:none" rel="nofollow">dimension resource. This is overridden for each corner by the following attributes.
android:topLeftRadius
Dimension. The radius for the top-left corner,229); text-decoration:none" rel="nofollow">dimension resource.
android:topRightRadius
Dimension. The radius for the top-right corner,229); text-decoration:none" rel="nofollow">dimension resource.
android:bottomLeftRadius
Dimension. The radius for the bottom-left corner,229); text-decoration:none" rel="nofollow">dimension resource.
android:bottomRightRadius
Dimension. The radius for the bottom-right corner,229); text-decoration:none" rel="nofollow">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 tonotbe rounded,a work-around is to useandroid: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,229); text-decoration:none" rel="nofollow">color resource.
android:gradientRadius
Float. The radius for the gradient. Only applied when android:type="radial".
android:startColor
Color. The starting color,229); text-decoration:none" rel="nofollow">color resource.
android:type
Keyword. The type of gradient pattern to apply. Valid values are: 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,229); text-decoration:none" rel="nofollow">dimension resource.
android:top
Dimension. Top padding,229); text-decoration:none" rel="nofollow">dimension resource.
android:right
Dimension. Right padding,229); text-decoration:none" rel="nofollow">dimension resource.
android:bottom
Dimension. Bottom padding,229); text-decoration:none" rel="nofollow">dimension resource.
<size>
The size of the shape.

attributes:

android:height
Dimension. The height of the shape,229); text-decoration:none" rel="nofollow">dimension resource.
android:width
Dimension. The width of the shape,255)"> 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 anImageView,you can restrict scaling by setting theandroid:scaleTypeto"center".

<solid>
A solid color to fill the shape.

attributes:

android:color
Color. The color to apply to the shape,229); text-decoration:none" rel="nofollow">color resource.
<stroke>
A stroke line for the shape.

attributes:

android:width
Dimension. The thickness of the line,229); text-decoration:none" rel="nofollow">dimension resource.
android:color
Color. The color of the line,229); text-decoration:none" rel="nofollow">color resource.
android:dashGap
Dimension. The distance between line dashes,229); text-decoration:none" rel="nofollow">dimension resource. Only valid if android:dashWidthis set.
android:dashWidth
Dimension. The size of each dash line,229); text-decoration:none" rel="nofollow">dimension resource. Only valid if android:dashGapis set.
EXAMPLE:
XML file saved at res/drawable/gradient_Box.xml:
<shape "rectangle"<gradient"#FFFF0000""#80FF00FF""45"<padding"7dp"<corners"8dp"</shape>

This layout XML applies the shape drawable to a View:

<TextViewandroid:background"@drawable/gradient_Box"android:layout_height"wrap_content"android:layout_width/>

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

Resources res = ;
Drawable shape  res.(Rdrawablegradient_Box);

TextView tv (TextView)findViewByIDidtextview
tvsetBackgroundshape);getResources()getDrawable
SEE ALSO:

猜你在找的XML相关文章