.9资源是啥?
.9图是一种可以拉伸的图片格式,当你把它用作背景图时,android系统会根据实际情况来拉伸图片资源。比如按钮的背景必须根据上面显示文字的长短作拉伸。NinePatch就是额外包含了一个像素边界的PNG图片,用.9.png来标识,并且存放在应用的res/drawable下。上边界和左边界定义了.9图的拉伸规则和静态不变的区域,两条线的交集为一个矩形,这个矩形内的像素可以自由拉伸;右边界和下边界定义了内容的位置,可以理解为pading。
可以利用sdk/tool/里的Draw 9-patch工具根据具体需求在png图四周加特定的像素描边生成。
.setBackgroundDrawable(getNinePatchDrawable(getBitmapByResourceName("image/headwindows_bg2.9.png")))
ImageView imageView = new ImageView(getContext());
imageView.setImageBitmap(getBitmapByResourceName("image/logo01.png"));
protected Bitmap getBitmapByResourceName(String string) {
InputStreaminputStream = getClass().getResourceAsStream(string);
return BitmapFactory.decodeStream(inputStream);
}
String=”image/headwindows_bg2.9.png”为目标资源相对于当前class文件的路径。
相对路径引用.9资源
protected Drawable getNinePatchDrawable(Bitmap bitmap) {
byte[] chunk =bitmap.getNinePatchChunk();
NinePatchDrawableninePatchDrawable = new NinePatchDrawable(getContext().getResources(), bitmap, chunk,
new Rect(), null);
return ninePatchDrawable;
}
Tips:.9资源分两种,一种是未编译的源文件在应用源码的res/drawable下;另一种是在apk包中已经编译过的资源。区别是编译后的.9图里面多了chunk信息用来描述那个拉伸的像素边框。我们这里使用的.9图是要编译后的资源。
应用场景
在开发一个对外开放sdk的jar包时需要弹一些自定义的对话框和按钮,但jar包只是一个压缩包,无法像标准android应用那样使用resource来获取资源,只能通过相对路径使用文件流来解析资源文件。所以提出这种方案来满足这种需求,另外还有一种方法是使用系统默认的资源或者让调用sdk的应用自带这些资源然后通过三方应用传入的Context获取到resource从而取得资源。
- 大小: 12.8 KB
分享到:
相关推荐
ninepatch = Ninepatch('ninepatch_bubble.9.png') print(ninepatch.content_area) # content_area(left=23, top=20, right=27, bottom=59) # render the image to a specific size scaled_image = ninepatch.render...
Android NinePatch 技术
一个常用的工具类,用于装饰recyclerview,支持ninepatch镜像。
ninepatch-editor-1.25
它是一个对png图片做处理的一个工具,能够为我们生成一个"*.9.png"的图片 2、什么是"*.9.png" "*.9.png"是Android os里所支持的一种特殊的图片格式,用它可以实现部分拉伸,这种图片是经过9Path进行特殊处理过的,...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
9patch mac版 点9工具(安装包)
NinePatchTest是Ninepatch的方法的实现工程
您还可以使用减少的图像资源来创建大型面板,因此对于优化项目资源非常有用。 入门 首先,您想获得该插件的全新副本。 您可以从此仓库或npm获取它,不是那么方便。 npm install @koreez/phaser3-ninepatch --save ...
用于装饰RecyclerView的通用工具类,支持ninepatch图像。 文档在这里 您可以使用gradle或maven导入此lib,因为它存在于JCenter中。 lib中将显示更多可扩展的有用方法。 该库将合并到ExpandRecyclerView lib中。 ...
Android原生的9patch图片制作工具,上传到CSDN以供大家学习以及参考,免去自行搜索下载的烦恼
NinePatch for littleluck 快速入门 下载littluck,并添加到你的项目中 Startup.java public class Startup { public static void main(String[] args) { // if open it close // System.setProperty("awt....
在Android应用开发当中经常需要使用图片,而图片又经常需要进行拉申,图片拉申的时候会出现变形,制作NinePatch图片可以指定图片的拉申区域,使图片拉申后还能获得比较好的效果。
NinePatch图(9-Patch图,.9图)是一种可拉伸的图片。 该压缩包含有两种类型的Nine-Patch图片,一种是微信聊天背景,另一种是QQ聊天背景(海浪)。
Swing9patch, 一组很酷的Java Swing可重用组件或UI效果。
Android人员开发工具 这个九宫格绘画工具(draw9patch.bat)可以让你很容易的通过一个所见即所得(WYS|WYG)的编辑器来创建一个九宫格NinePatch图
NinePatch for littleluck Quick Start <groupId>com.github.freeseawind</groupId> <artifactId>littleluck <version>2.0.0 联系作者 如有Bug和建议邮箱至:iphonewang@...
photoshop网站切图高级教程
让您在 iOS 上轻松使用 9-Patch PNG 图片。 该技术只是将 9-patch PNG 图像转换为 iOS 兼容、可调整大小的 UIImage 对象。 有关详细信息,请参阅 UIImage 的 resizableImageWithCapInsets:(UIEdgeInsets)insets ...
图像NinePatch 作为视图的背景上使用具有伸缩性的位图图像,必须使用项目目录中的9.png扩展名 进行保存res/drawable/左侧和顶部绘制一条(或