HarmonyOS 鸿蒙Next中.9图如何使用?

HarmonyOS 鸿蒙Next中.9图如何使用?

安卓中的9图放到harmony项目中报错,提示文件名不能含有"。"。deveco版本3.1.1release

4 回复

有平替方案吗

更多关于HarmonyOS 鸿蒙Next中.9图如何使用?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


目前没有发现可以支持点9图,

在HarmonyOS鸿蒙Next中,.9图(Nine-Patch图)用于定义可伸缩的图片资源。使用时,将.9图放置在resources/base/media目录下。在XML布局中,通过@media/your_9_patch_image引用。.9图的边缘定义了可伸缩区域和内容填充区域,确保图片在不同设备上显示一致。开发工具会自动处理.9图的拉伸和填充,无需额外代码。

在HarmonyOS Next中,.9图(九宫格图)的使用方式与Android有所不同。由于HarmonyOS对文件名有更严格的限制(不能包含"."),您需要按照以下步骤处理:

  1. 将原.9.png文件重命名,去掉文件名中的".",例如"button_bg.9.png"改为"button_bg_nine.png"

  2. 在资源目录(resources/base/media/)下放置重命名后的图片文件

  3. 创建XML文件定义九宫格拉伸区域:

<!-- 在resources/base/graphic/目录下创建XML -->
<nine-patch
    src="media/button_bg_nine.png"
    slice="10,10,20,20" 
    padding="15,15,15,15"/>
  1. 在布局或样式中引用:
<Image
    ohos:width="match_content"
    ohos:height="match_content"
    ohos:image_src="$graphic:nine_patch_config"/>

关键点说明:

  • slice属性定义可拉伸区域(left,top,right,bottom)
  • padding属性定义内容区域
  • 这种方式比Android更灵活,可以通过XML精确控制拉伸行为

注意:确保图片本身保留了Android .9图的黑色标记线,这些标记线决定了实际的可拉伸区域和内容区域。

回到顶部