当前位置: 首页 > 面试题库 >

为什么我们需要9个补丁?

蒋弘致
2023-03-14
问题内容

我的问题就像标题说的那样:为什么我们需要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



 类似资料:
  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?

  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。

  • 本文向大家介绍为什么我们需要一个数据库,包括了为什么我们需要一个数据库的使用技巧和注意事项,需要的朋友参考一下 数据库是数据的集合,通常以电子形式存储。数据库的设计通常是为了使其易于存储和访问信息。 好的数据库对任何公司或组织都至关重要。这是因为数据库存储了有关公司的所有相关详细信息,例如员工记录,交易记录,工资详细信息等。 数据库重要的各种原因是- 管理大量数据 数据库每天存储和管理大量数据。使

  • 问题内容: 我开始使用RxJS,但我不明白为什么在此示例中我们需要使用类似or 的函数;数组的数组在哪里? 如果有人可以直观地解释正在发生的事情,那将非常有帮助。 问题答案: 当您有一个Observable的结果是更多Observable时,可以使用flatMap。 如果您有一个由另一个可观察对象产生的可观察对象,则您不能直接过滤,缩小或映射它,因为您有一个可观察对象而不是数据。如果您生成一个可观

  • 问题内容: 使用JDBC连接池工具(如DBCP或c3p0)有什么好处? 如果只有 一个* 用户的 小型CRUD 应用程序,我们是否可以将 一个 连接会话创建为一个 单例 ? * PS :我正在构建一个带有小型数据库(5个表)的小型后端应用程序。 问题答案: 从Jon Skeet的答案到连接和语句池的好处是什么?: 创建到数据库服务器的网络连接是(相对)昂贵的。同样,要求服务器准备SQL语句(相对)