9Patch实例&详解缩放区域与内容显示区域

Android: 制作 Nine-Patch 图片(.9图片) Android RecyclerView制作 Nine-Patch 图片参考 参考 1、https://www.cnblogs.com/hyacinthLJP/p/14352649.html 阅读详情

    在我们使用图片作为按钮的背景图时,android有时会自动拉伸缩放整张图片以使得背景图片能覆盖整个按钮区域,这就可能使得图片中某些我们需要保留原始尺寸部位扭曲变形,用9Patch工具对图片做相应处理就可以解决这一问题,闲话少叙,我们直接来看9Patch工具是如何使用的。

    在Android SDK安装路径的tools目录下,双击draw9patch.bat,启动该工具,点击"File"→"Open 9-patch"打开一张png图片,这里我们选择了一张萌萌哒的拿着气球的大白。

    

    在界面右侧会显示图片在不同情况下被拉伸或缩放的预览图,可以看得到本来身体比例协调的大白变形后或者变得高瘦或者变得矮胖,完全失去了原有的萌态!9Patch中通过定义图片缩放区域就可以很好地解决这一问题。在图片的左边界画直线,以此直线向右映射所得的矩形区域可以在垂直方向拉伸或缩放;在图片上边界画直线,以此直线向下映射所得的矩形区域可以在水平方向拉伸或缩放,而两个矩形区域交集的区域在两个方向上都可以变形。

   

    如上图所示,我们分别在左边界和上边界画了两条线(我偷偷描粗了一点便于大家看吐舌头),由这4条线组成的4个区域就是图片可缩放区域(偷偷上了个色便于大家看吐舌头),我们可爱的大白不处于可缩放区域,因此就不会变形了。

    清楚了9Patch中缩放区域的相关内容后,我们接下来看内容显示区域的作用及用法。

    缩放区域由左侧和上侧直线控制,而内容显示区域则由右侧和下侧所画直线共同决定,所谓内容显示区域意思就是当我们将这张.9.png的图片作为按钮背景然后通过android:text给按钮添加文字时,文字会显示在内容显示区域。这里我们希望在大白的气球上写文字,因此画线方法如下

   

    我们在右边界和下边界各画了一条直线(我又给加粗了【手动笑哭】),两条直线映射所得矩形区域的交集部分(绿色矩形区域)即为内容显示区域,接下来我们保存所得.9.png格式图片,并将其复制到工程的drawable文件夹下,就可以将此图片用作按钮背景了,效果图如下

    

    可以发现,我们给按钮输入的文字“Love”会处于设置的气球区域!喜欢这篇用心的博客就顶一个吧!

   

【Android游戏开发十一】手把手让你爱上Android sdk自带“9妹”(9patch 工具),让Android游戏开发更方便! 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/321.html 很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑 阅读详情

相关推荐

Android高级资源 9-Patch

介绍 Drawable 资源是 Android 应用中使用最广泛、灵活的资源。它不仅可以直接使用图片作为资源,而且可以使用 XML 文件作为资源,只要一个 XML 文件可以被系统编译成 Drawable 子类的对象,那么该 XML 文件就可以作为 Drawable 资源。 Drawable资源保存在res\drawable目录中,实际上,为了适应不同屏幕分辨率,通常情况下将其保存在res\drawable-mdpi、res\drawable-hdpi、res\drawab...

Black_Cat_33的博客 1101

draw9patch--指定图片的可缩放区域防止失真

在Android Studio里临摹编写qq聊天界面作为app开发的练习时,遇到了一些问题: 1.聊天的气泡怎样拉伸以盛放内容? 2.拉伸后明显模糊,特别难看 对于第一个问题,可以在活动对应的xml文件中设置图片的属性android:scaleType 这个属性有几个参数,scaleType的属性有matrix(默认)、center、centerCrop、centerInside、fitC

欢迎访问 花落的速度 的博客 676

Android 9patch失效

昨天将 Android SDK 升级到 ADT15 后,发现工程里的 9-patch 图像全部失效了,惨不忍睹,一番 Google 搜索后在这里找到了解决方案: 原文墙外,简单搬运翻译如下: 点击链接进入下载 Swing Desktop,然后把压缩包里的 swinglabs-0.8.0.jar 文件放到 [SDK安装位置]/tools/lib,重启 eclipse,在菜单里选择 Project –> Clean 即可。

android 9patch

下面是两篇有参考性的文章!  记着:我们来澄清一下这两条不同的线,左边跟顶部的线来定义哪些图像的像素允许在伸缩时被复制。        底部与右边的线用来定义一个相对位置内的图像,视图的内容就放入其中。 关键学习ninepatch的用法、一些注意事项、以及如何在项目之中使用     1:介绍 参考 :http://blog.sina.com.cn/s/blog

今天 1689

MTK metadata中AF模块的移除与配置调整

本文详细介绍了在MTK平台Camera开发中如何移除metadata中的AF(自动对焦)模块。通过系统清理MTK_CONTROL_AF_REGIONS、MTK_CONTROL_MAX_REGIONS等关键配置项,并调整对焦模式及硬件特性声明,确保定制化设备在禁用自动对焦功能后的稳定运行。

q1w3e5r7t9y的博客 570

新手避坑:RT-Thread-Studio外设驱动配置最容易忽略的3个地方(附WDT实例)

本文针对RT-Thread-Studio新手在配置外设驱动时常见的编译报错问题,以看门狗(WDT)为例,详细解析了最易忽略的三个关键配置环节:RT-Thread-Studio的图形化Setting开关、Kconfig中的依赖关系以及SConscript的编译规则。掌握这三层配置模型,能有效避免头文件包含正确却依然编译失败的问题,确保驱动代码被正确加入构建。

gray5的博客 506

NinePatch图(9-Patch图,.9图)

一. 什么是点九图 点九图其实就是安卓系统中特有的一种图片格式,为了让大家更好的记住,我们只要知道,后缀名是「.9.png」的图片,就是点九图。 二. 点九图的作用是什么 每个事物都有其存在的价值,所以先弄清楚点九图能为我们解决什么问题,这样后面理解起来就会容易很多。 其实点九图的用处就是帮助我们拉伸切图的,比如这个切图: 如果它需要纵向拉伸,直接拉会变成下面这个样子: 而用了点九图就可以让切图局部拉伸,而不是整体拉伸,这样就可以把容易变形的地方保护起来: 是不是拉伸的很完美...

weixin_42145792的博客 1620

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5006

.9.png的区域划分

左侧和顶部的直线共同决定了图片的缩放区域:左侧和顶部黑线的两头分别为可伸缩的边界线,也就是说途中粉红色的部分是允许进行缩放的区域,左边直线可以中心啊缩放,顶部直线可以横线缩放。 右侧和底部的直线共同决定了图片的内容显示区域,也就是(text)文本显示的地方,没有缩放前如图,按照第一张图的黑线缩放之后就是,看,“本”字由于我们底部直线控制的区域的原因,所以这个字被挤下去了。图示例是使用sdk安装目

MincingMachine的博客 639

浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

迪杰斯特拉(Dijkstra)算法和A*算法的原理及实现。

Guo_Zhanyu 9599

ONNX Runtime C# YOLO全链路压测:从300ms到22ms的15个底层优化技巧

摘要:本文分享了工业质检场景下C#调用YOLOv8s ONNX模型的性能优化实战经验。原始单帧推理耗时300ms无法满足产线需求,通过全链路分析定位瓶颈(预处理85ms、推理180ms、后处理30ms)。重点优化措施包括:使用OpenCVSharp CUDA加速预处理(85ms→12ms),开启ONNX Runtime ALL级别图优化,选用TensorRT执行提供程序(180ms→22ms),以及优化内存管理和线程调度。最终实现单帧总耗时22ms±2ms,GPU利用率提升至85%,完整满足产线120块板/

2601_94871597的博客 402

fluent中patch的使用方法

上半部分是空气,所以在Solution—Cell Registers-右键new-选择rigon给出坐标点范围,如图所示这部分region名字为air。切记图中不要点这个部分这个是整个计算域,然后点击Patch即可。我这个模型坐标是200mm长100宽,原点坐标在中心点。然后点击initialization再点击patch。下图是错误示范,我说咋一直patch一直不成功。同理创建一个water的region。

weixin_62110558的博客 8322

第95节:多模型多卡推理管理

多模型推理:在同一硬件平台上同时部署多个不同或相同的深度学习模型,满足多任务需求。多卡推理:利用多块 GPU 资源,提升推理吞吐量与并发能力。目标:合理分配 GPU 资源,实现高效、低延迟的推理服务。

yumeiguo的博客 218

Android 使用9Patch图片做背景

9Patch 图片是一种特殊的 PNG 图片,这种图片以 .9.png 结尾,它在原始图片四周各添加一个宽度为1像素的线条,这4条线就 决定了该图片的缩放规则、内容显示规则。         如上图显示了定义图片缩放区域的示意图。左侧和上侧的直线共同决定了图片的缩放区域:以左边直线为左边界绘制矩形,它 覆盖的区域可以在纵向上缩放;以上面直线为上边界绘制矩形,它覆盖的区域可以水平缩放;

菜鸟的自我修养 7395

PyTorch实战(26)——PyTorch分布式训练

在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。

盼小辉丶的博客 3833

OSCP-Challenge 2 - Relia

使用andrea:PasswordPassword_6登录远程桌面,在c盘根目录下发现一个计划任务的ps,文件,修改执行的exe位木马,获取到milana用户的反弹shell。,发现开放了一个8000端口,但是我们外部是访问不到的,它对应的页面是/var/www/internal/,这个目录下的文件我们是可以访问的,把这个文件打个包放到本地分析下。其中数据的可以直接连接mssql,但是端口是49965,不过在数据库中没发现什么可用的信息,但是可以修改密码直接进后台,这个可以先放放。

羽的博客 7767

android 9patch背景图片导致的一个文本显示问题

今天在写android程序时遇到了一个奇怪的问题。 一个简单的布局 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android

飞云天 4107

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android 聊天.9背景图,Android 使用9Patch图片做背景

9Patch 图片是一种特殊的 PNG 图片,这种图片以 .9.png 结尾,它在原始图片四周各添加一个宽度为1像素的线条,这4条线就决定了该图片的缩放规则、内容显示规则。如上图显示了定义图片缩放区域的示意图。左侧和上侧的直线共同决定了图片的缩放区域:以左边直线为左边界绘制矩形,它覆盖的区域可以在纵向上缩放;以上面直线为上边界绘制矩形,它覆盖的区域可以水平缩放;它们二者的交集可以在两个方向上缩放。...

weixin_28949743的博客 401

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用9Patch图片作为背景

将图片作为View组件的背景时,当View中要呈现的文字内容太多时,Android会自动缩放整张图片,以保证背景图片能覆盖整个View。但这种缩放图片的效果可能并不好。可能存在的情况是我们只想缩放图片的某个部分,这样才能保证View的视图效果。为了实现只缩放图片中的某个部分效果,我们需要借助于9Patch图片来实现。9Patch图片是一种特殊的PNG图片,这种图片以.9.png结尾,它在原始图片四周

跟着大数据和AI去旅行 2764

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex&trade;-M4F 内核的信息,请参见《Cortex&trade;-M4F 技术参考手册》。

Android之9-Patch图

9-Patch的创建、制作和使用

jignjingfan的博客 1796

简述Android 9-Patch

什么是9-Patch 安卓开发里面的一种特殊的图片,这种格式的图片在 android 环境下具有自适应调节大小的能力,文件名以.9.png结尾。 如何制作 9-Patch 文件 创建: 首先,将需要制作成 9-patch 的图片放进项目中 点击该图片,右键调出菜单栏,选中 Create 9-Patch file 指定9-Patch文件存储位置(建议重新编辑下名称,后面引用才不会冲突) 点击确定后,我们就在目录下得到了一张.9图了,但是,我们还需要对图片进行编辑,这样图片的拉伸效果

chuyouyinghe的专栏 975

Android中利用9-Patch(点9)处理图片

一、什么是 9-Patch 图片? 一种被特殊处理过的png图片,可以指定哪些区域能够拉伸,哪些区域可以显示内容。 二、使用场景 主要是用于对话框等拉伸能够不变形的场景。 三、 创建.9.png图片 1. 选中一张png图片,右键Create 9-Patch file 2. 选中文件夹,修改名字。 注意:9-Patch图片要放在drawable文件夹下,否则编译时会报错。后缀...

小涛的博客 1264

9patch图片

------- android培训、java培训、期待与您交流! ---------- 第1节 集合框架(TreeSet)  TreeSet TreeSet(Collectionc)//上限 TreeSet(Comparator comparator)//比较器,下限..,只能用父类的方法   Set:无序,不可以重复元素  |--HashSet:数据结构是哈希表。线程非同步的.

Geek马走日 969

关于9patch的工具

前几天群成员讨论过关于9patch的工具【我比较喜欢喊它9妹子,西西(*^_^*)】、然后研究了一下,比较简单但是很实用的一个Android sdk 自带工具、这里给大家做一个分享下经验!   1.什么是“9妹”(9patch)? 它是一个对png图片做处理的一个工具,能够为我们生成一个"*.9.png"的图片;   2.何为"*.9.png"? 所谓"*.9.png"这是Android

5175

Android中9-patch图片的总结

上周开始,自己算是第一次真正在项目中开发Android,和iOSd

lihei12345的专栏 5658
上一篇: android中如何为设置了背景图的按钮自定义动画
下一篇: android中RadioButton与CheckBox小结
whatever9527
博客等级 码龄10年 32粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值