HarmonyOS 鸿蒙Next中.9图如何使用?
HarmonyOS 鸿蒙Next中.9图如何使用?
安卓中的9图放到harmony项目中报错,提示文件名不能含有"。"。deveco版本3.1.1release
4 回复
目前没有发现可以支持点9图,
在HarmonyOS鸿蒙Next中,.9图(Nine-Patch图)用于定义可伸缩的图片资源。使用时,将.9图放置在resources/base/media
目录下。在XML布局中,通过@media/your_9_patch_image
引用。.9图的边缘定义了可伸缩区域和内容填充区域,确保图片在不同设备上显示一致。开发工具会自动处理.9图的拉伸和填充,无需额外代码。
在HarmonyOS Next中,.9图(九宫格图)的使用方式与Android有所不同。由于HarmonyOS对文件名有更严格的限制(不能包含"."),您需要按照以下步骤处理:
-
将原.9.png文件重命名,去掉文件名中的".",例如"button_bg.9.png"改为"button_bg_nine.png"
-
在资源目录(resources/base/media/)下放置重命名后的图片文件
-
创建XML文件定义九宫格拉伸区域:
<!-- 在resources/base/graphic/目录下创建XML -->
<nine-patch
src="media/button_bg_nine.png"
slice="10,10,20,20"
padding="15,15,15,15"/>
- 在布局或样式中引用:
<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图的黑色标记线,这些标记线决定了实际的可拉伸区域和内容区域。