In the process of Android development, we often need to change the style of the control, can be used to increase the background image of the way to change, but the background image is more and more certainly will make the apk file greatly.
We can do that with a custom attribute shape.
Shape
gradient--corresponds to the color gradient. StartColor, EndColor will not say much. android:angle refers to the angle from which the change begins.
Solid--fill.
Stroke-- strokes.
Corners-rounded corners.
Padding-defines how far the content is from the boundary.
Let's look at the effect first:
Below we use the specific code to illustrate:
First, create a new project, and then we'll edit it in Main.xml:
<span Style= "FONT-SIZE:18PX;" ><?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "http://schemas.android.com/apk/ Res/android "android:layout_width=" fill_parent "android:layout_height=" fill_parent "android:orientation=" vertical "> <textview android:layout_width=" fill_parent "android:layout_height=" Wrap_content "Android:layout_ margintop= "10DP" android:text= "Demo text" android:textsize= "14pt" android:textcolor= "#565656" android:backg round= "@drawable/bg_border"/> <!--draw a picture by Android:drawableleft--><textview android:layout_width= "fil L_parent "android:layout_height=" Wrap_content "android:text=" Demo text 2 "android:textsize=" 24pt "android:background=" @ Drawable/bg_border2 "/></LINEARLAYOUT></SPAN>
you can see that in the top of the two TextView Android:background properties, the use of the @drawable/bg_border and @drawable/bg_border2 two files
We then create these two Android XML files below the @drawable folder:
Bg_border.xml:
<span style= "FONT-SIZE:18PX;" ><?xml version= "1.0" encoding= "Utf-8"? ><shape xmlns:android= "http://schemas.android.com/apk/res/ Android > <!--fill: Set the background color--><solid android:color= "#ffffff"/><!--set the border--><stroke Android:width= "5px" android:color= "#873600" android:dashwidth= "5dip" /><!--define padding-->< padding android:top= "20dip" /> </shape></span>
Bg_border2.xml:
<span style= "FONT-SIZE:18PX;" ><?xml version= "1.0" encoding= "UTF-8"? ><shape xmlns:android= "http://schemas.android.com/apk/res/ Android " android:shape=" Rectangle "> <!--radius of 4 rounded corners of the specified rounded rectangle-- <corners android: topleftradius= "20px" android:toprightradius= "5px" android:bottomrightradius= "20px" android: bottomleftradius= "5px"/> <!--Specifies the width and color of the border line--><stroke android:width= "4px" android:color= "#f0f"/ ><!--Specifies to use the gradient background color, use the sweep type of gradient color from red → green → blue--><gradient android:startcolor= "#f00" android: Centercolor= "#0f0" android:endcolor= "#00f" android:type= "sweep"/></shape></span>
Let's take a look at our project catalog view:
Android Development Series (18): XML implementation of custom control styles under the Drawable folder