java – 为什么我们需要9补丁?
作者:互联网
我的问题就像标题所说:为什么我们需要9个补丁图像?它们真的如此重要吗?实际上,他们真正做了什么?我没有清楚地得到9补丁图像的概念.
我知道9补丁图像是可扩展的.所以,假设我有一些完全适合我的ldpi设备的图像按钮.使用Draw 9-patch工具(android SDK的一部分),我可以标记可扩展区域,这个图像非常适合hdpi甚至xhdpi设备.边缘将是美好而顺利的.
但这是非常好的实践还是仅仅是另类?我应该为ldpi,mdpi,hdpi和xhdpi设备创建每个图像,还是只需在一个图像上使用Android SDK“Draw 9-patch”,让Android处理各种设备?
我不是关于边缘,而是图片的实际内容.内容是否可扩展?
解决方法:
在典型用法中,内容是可缩放的,边缘不会缩放.
它们通常用于按钮或其他屏幕装饰的背景,其中缩放的内容可以无限缩放而不会丢失分辨率.
理想情况下,除了适当的密度相关资源之外,还使用它们,以便资源的部分(您没有明确声明的是可伸缩的)不会升级并随后进行像素化.
考虑Android上Kindle应用程序的启动画面,其中包含该男孩阅读树木的轮廓.在简化版本中,地面可以无限水平缩放,但如果男孩缩放,他就会出现倾斜.因此,您可以使用九个补丁并指定可以缩放的部分以及指向哪个方向.
但这还不够 – 如果你只包含一个低分辨率资源,如果设备显示密度更高,资源最初仍会按比例放大.在这种情况下,男孩可能从升级看起来模糊,并且是更高分辨率资源可以帮助防止像素化的示例.
你问这个问题的方式(对我而言)暗示你要问9补丁图像是否可以取代所有可绘制的资源,比如图标或带有图片的资源,答案是否定的.它们仅用于缩放以单色块为特征的资源部分(即不能像素化的部分).
–
http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch
标签:nine-patch,android,java 来源: https://codeday.me/bug/20190825/1721976.html