android NinePatchDrawable 9.png图片使用制作
2010-12-02 15:23
435 查看
NinePatchDrawable
ANinePatchDrawablegraphic is a stretchable bitmap image, which Android will automatically resize to accommodate the contents of the View in which you have placed it as the background. An example use of a NinePatch is the backgrounds used by standard Android buttons — buttons must stretch to accommodate strings of various lengths. A NinePatch drawable is a standard PNG image that includes an extra 1-pixel-wide border. It must be saved with the extension
.9.png, and saved into the
res/drawable/directory of your project.
The border is used to define the stretchable and static areas of the image. You indicate a stretchable section by drawing one (or more) 1-pixel-wide black line(s) in the left and top part of the border. (You can have as many stretchable sections as you want.) The relative size of the stretchable sections stays the same, so the largest sections always remain the largest.
You can also define an optional drawable section of the image (effectively, the padding lines) by drawing a line on the right and bottom lines. If a View object sets the NinePatch as its background and then specifies the View's text, it will stretch itself so that all the text fits inside only the area designated by the right and bottom lines (if included). If the padding lines are not included, Android uses the left and top lines to define this drawable area.
To clarify the difference between the different lines, the left and top lines define which pixels of the image are allowed to be replicated in order to stretch the image. The bottom and right lines define the relative area within the image that the contents of the View are allowed to lie within.
Here is a sample NinePatch file used to define a button:
This NinePatch defines one stretchable area with the left and top lines and the drawable area with the bottom and right lines. In the top image, the dotted grey lines identify the regions of the image that will be replicated in order to stretch the image. The pink rectangle in the bottom image identifies the region in which the contents of the View are allowed. If the contents don't fit in this region, then the image will be stretched so that they do.
The Draw 9-patch tool offers an extremely handy way to create your NinePatch images, using a WYSIWYG graphics editor. It even raises warnings if the region you've defined for the stretchable area is at risk of producing drawing artifacts as a result of the pixel replication.
Example XML
Here's some sample layout XML that demonstrates how to add a NinePatch image to a couple of buttons. (The NinePatch image is saved asres/drawable/my_button_background.9.png
<Button id="@+id/tiny" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerInParent="true" android:text="Tiny" android:textSize="8sp" android:background="@drawable/my_button_background"/> <Button id="@+id/big" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerInParent="true" android:text="Biiiiiiig text!" android:textSize="30sp" android:background="@drawable/my_button_background"/>
Note that the width and height are set to "wrap_content" to make the button fit neatly around the text.
Below are the two buttons rendered from the XML and NinePatch image shown above. Notice how the width and height of the button varies with the text, and the background image stretches to accommodate it.
Draw 9-patch
The Draw 9-patch tool allows you to easily create aNinePatchgraphic using a WYSIWYG editor.
For an introduction to Nine-patch graphics and how they work, please read the section on Nine-patch in the Ninepatch Images topic.
Here's a quick guide to create a Nine-patch graphic using the Draw 9-patch tool. You'll need the PNG image with which you'd like to create a NinePatch.
From a terminal, launch the
draw9patchapplication from your SDK
/toolsdirectory.
Drag your PNG image into the Draw 9-patch window (or File > Open 9-patch... to locate the file). Your workspace will now open.
The left pane is your drawing area, in which you can edit the lines for the stretchable patches and content area. The right pane is the preview area, where you can preview your graphic when stretched.
Click within the 1-pixel perimeter to draw the lines that define the stretchable patches and (optional) content area. Right-click (or hold Shift and click, on Mac) to erase previously drawn lines.
When done, select File > Save 9-patch...
Your image will be saved with the
.9.pngfile name.
Note: A normal PNG file (
*.png) will be loaded with an empty one-pixel border added around the image, in which you can draw the stretchable patches and content area. A previously saved 9-patch file (
*.9.png) will be loaded as-is, with no drawing area added, because it already exists.
Optional controls include:
Zoom: Adjust the zoom level of the graphic in the drawing area.
Patch scale: Adjust the scale of the images in the preview area.
Show lock: Visualize the non-drawable area of the graphic on mouse-over.
Show patches: Preview the stretchable patches in the drawing area (pink is a stretchable patch).
Show content: Highlight the content area in the preview images (purple is the area in which content is allowed).
Show bad patches: Adds a red border around patch areas that may produce artifacts in the graphic when stretched. Visual coherence of your stretched image will be maintained if you eliminate all bad patches.
相关文章推荐
- Android必知必会--NinePatch图片制作(比较全面内容----有时间详细看看)
- android 9.png 图片制作
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- android 制作9.png图片
- Android图片海报制作-MaterialDesign使用
- Android使用TransitionDrawable渐变切换多张图片
- android 制作9.png图片
- android 制作9.png图片
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- [Android]使用draw9patch制作可拉伸图片
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- android 制作9.png图片
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android必知必会--NinePatch图片制作
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android .9.png图片的制作与使用
- android 制作9.png图片
- android:使用gallery和imageSwitch制作可左右循环滑动的图片浏览器
- android 制作9.png图片