`

Android UI背景图片之NinePatch图片

阅读更多

         NinePatch图片以*.9.png结尾,和普通图片的区别是四周多了一个边框(如下图所示):

                                            

         如上图所示,左边那条黑色线代表图片垂直拉伸的区域,上边的那条黑色线代表水平拉伸区域,右边的黑色线代表内容绘制的垂直区域,下边的黑色线代表内容绘制的水平区域,右边和下边的线是可选的,左边和上边的线不能省略。

        采用NinePatch图片做背景,可使背景随着内容的拉伸(缩小)而拉伸(缩小)。那么如何将普通的PNG图片编辑为NinePatch图片呢,Android  SDK/tools目录下提供了编辑器draw9patch.bat,双击即可打开,使用起来很简单了,主要有以下选项:

  •  Zoom: 用来缩放左边编辑区域的大小
  •  Patch scale: 用来缩放右边预览区域的大小
  •  Show lock: 当鼠标在图片区域的时候显示不可编辑区域
  •  Show patches: 在编辑区域显示图片拉伸的区域 (使用粉红色来标示)
  •  Show content: 在预览区域显示图片的内容区域(使用浅紫色来标示)
  •  Show bad patches: 在拉伸区域周围用红色边框显示可能会对拉伸后的图片产生变形的区域,如果完全消除该内容则图片拉伸后是没有变形的,也就是说,不管如何缩放图片显示都是良好的。 (实际试 发现NinePatch编辑器是根据图片的颜色值来区分是否为bad patch的,一边来说只要色差不是太大不用考虑这个设置。)
分享到:
评论
1 楼 lattimore 2010-09-26  
这里说明的很详细:
http://www.developer.com/ws/other/article.php/3889086/Working-with-NinePatch-Stretchable-Graphics-in-Android.htm

相关推荐

    AndroidUI开发专题之绘图基础.pdf

    使用`Draw 9-Patch`工具可以方便地创建和编辑NinePatch图像,这对于创建灵活的UI元素如按钮或背景非常有用。 3. **Paint** - Paint类是画笔,定义了绘制时的样式、颜色和其他属性。`setColor()`或`setARGB()`用于...

    高仿android-QQ空间下拉背景图拉伸回弹效果

    同时,如果背景图片较大,可以考虑使用Bitmap的NinePatch格式,以减少内存占用。 5. **自定义Adapter和数据加载**: 为了让自定义ListView显示内容,我们需要编写一个自定义Adapter,处理数据的加载和视图的绑定。...

    NinePatchTest

    在Android开发中,NinePatch图是一种具有额外边框信息的PNG图片,这些额外的边框定义了图像哪些部分可以拉伸,哪些部分应保持不变。这种技术使得开发者可以在不增加过多代码的情况下,轻松创建出能随屏幕尺寸变化而...

    Android_UI开发专题(二)_之绘图基础

    - NinePatch是一种特殊的PNG图像格式,用于Android上的可拉伸背景。它允许图片在保持内容区域不变的情况下进行水平和垂直方向的弹性扩展。 - Android SDK提供的`Draw 9-Patch`工具用于创建和编辑NinePatch图像,...

    Android应用源码之Android创建抗锯齿透明背景圆角图像.zip

    本资源"Android应用源码之Android创建抗锯齿透明背景圆角图像.zip"提供了一个具体的实例源代码,帮助开发者深入理解和实践这一技术。 首先,我们需要理解什么是抗锯齿。抗锯齿是一种图形处理技术,用于消除图形边缘...

    Android图片填充动画

    对于性能要求较高的场景,可以考虑使用硬件加速或者使用`NinePatch`图片来提高绘制效率。同时,确保在动画不再需要时调用`animator.cancel()`或`animator.end()`来停止动画,以节省系统资源。 以上就是创建和应用...

    NinePatch图片制作从入门到精通

    在Android项目中,NinePatch图片以`.9.png`为扩展名,并在布局文件中通过`<ImageView>`或特定的UI组件(如`Button`)引用。例如: ```xml android:layout_width="wrap_content" android:layout_height="wrap_...

    NinePatchDrawable读取非资源图片

    在Android开发中,NinePatchDrawable是一种特殊的图像格式,主要用于创建可拉伸的UI元素,比如按钮、背景等。它允许开发者定义图像的哪部分可以拉伸,哪部分应该保持不变,从而实现自适应不同尺寸的屏幕。在某些情况...

    Android高级应用源码-drawable(图片).rar

    本资源包"Android高级应用源码-drawable(图片)"提供了关于Android中Drawable使用的源码示例,这对于理解和掌握Android图形绘制以及UI设计有极大帮助。以下是对这个主题的详细解释: 1. **Drawable概述**: ...

    点九图片素材制作工具Nine-Patch

    这种格式允许开发者指定图像的拉伸区域和不拉伸区域,从而确保图像在不同尺寸屏幕上的表现效果一致,尤其适用于按钮、背景等需要自适应大小的UI元素。在Android开发中,点九图片的使用极大地提高了用户体验和应用的...

    Android工具(9Patch)_android源码.zip

    总的来说,9Patch是Android开发中不可或缺的一部分,它提供了灵活的图片适配解决方案,确保了UI元素在各种屏幕尺寸下的良好显示。通过深入学习9Patch的使用和源码,开发者可以更好地优化应用的视觉效果和性能。

    自定义的Switch

    在Android中,可以使用NinePatch图片(.9.png)以适应不同尺寸的屏幕。NinePatch允许我们定义拉伸区域和不变区域,使得图片在不同尺寸下都能保持良好的视觉效果。 实现自定义Switch的步骤如下: 1. **资源准备**:...

    自定义View—使用Xfermode实现圆角图片

    本文将详细讲解如何通过使用Xfermode技术来实现一个圆角图片的功能,这在很多应用场景中非常常见,比如头像、卡片背景等。 Xfermode是Android图形库中的一个关键组件,它定义了如何将一个源图像与目标图像进行复合...

    安卓QQ相关相关-模仿QQ的UI界面.rar

    4. **Android图形库**:可能使用了NinePatch图片(.9.png)来创建可拉伸的背景,以及SVG或BitmapDrawable来处理矢量图形和图标。 5. **图片加载库**:为了优化性能,QQ应用可能会使用像Glide或Picasso这样的图片...

    按钮重绘,背景拉伸

    在实际开发中,例如在Android中,可以使用` NinePatch`图像,这种特殊的PNG图片包含额外的边框信息,允许图片在不同方向上拉伸而不失真。而在JavaFX或Swing中,可以使用`BackgroundImage`配合`BackgroundRepeat`和`...

    图片渲染效果.zip

    在Android开发中,图片渲染效果是一个重要的主题,它涉及到用户界面(UI)的视觉表现和用户体验。源码学习是深入理解这一技术的关键。本压缩包"图片渲染效果.zip"可能包含了与Android图片渲染相关的代码示例和讲解材料...

    PngButton-在BUTTON上使用PNG图片

    总的来说,`PngButton`的概念是为了提升Android应用的UI质量,通过合理利用PNG图片的特性以及Android提供的各种绘图工具,我们可以创建出更具吸引力且用户体验良好的按钮组件。无论是通过XML布局还是代码实现,都...

    安卓Android源码——安卓Android9妹工具(9Patch).rar

    9Patch是Android操作系统中一种特殊的图像格式,主要用于创建可伸缩的UI元素,如按钮、背景等。在Android开发中,9Patch工具是开发者必备的辅助工具,它可以帮助设计师和开发者制作出能够自适应不同屏幕尺寸和分辨率...

    Android仪表盘实现

    在Android开发中,创建自定义UI是常见的任务之一,尤其当你需要实现一款具有特定风格的仪表盘时。本文将深入探讨如何利用Android的Canvas、Bitmap和Matrix类来实现一个可旋转的汽车方向盘,从而构建一个功能完备且可...

    Android Drawable必备知识小结

    总之,理解并熟练掌握Android Drawable的使用对于提升UI设计和开发的灵活性至关重要。通过组合各种Drawable类型和属性,开发者可以创建出丰富多样的视觉效果,满足不同应用场景的需求。无论是简单的颜色填充还是复杂...

Global site tag (gtag.js) - Google Analytics