Android图片粘上后仍错误,Android中的9补丁图片错误

在Android开发中遇到9-patch图片加载错误,错误提示为9-patchimage格式不正确,边框像素必须为纯色或透明。一种解决方案是使用Android SDK的draw9patch工具打开图片,检查并修正错误的像素,然后重新保存。另一种可能的原因是ADT版本问题,尝试将.9.png重命名为.png文件,或者确保9-patch图片的边框像素正确,角落保持透明。
摘要由CSDN通过智能技术生成

Android中的9补丁图片错误

每当我尝试在项目中的\drawable文件夹中添加9补丁图像时,都会出现相同的错误:

ERROR: 9-patch image C:\...\res\drawable\appwidget.9.png malformed.

Frame pixels must be either solid or transparent (not intermediate alphas).

Found at pixel #3 along top edge. Failure processing PNG image

C:\...\res\drawable\appwidget.9.png

在此示例中,很奇怪的是,我已经从SDK资源中的“ android-g1-icon”图像中获得了该图像,因此应该可以。 到目前为止,我尝试过的任何9补丁图像都发生了同样的情况。 有什么事吗

14个解决方案

32 votes

我在Android Studio上遇到了相同的问题:

AAPT out(943142208) : No Delegate set : lost message:Done

AAPT err(943142208): ERROR: 9-patch image /Users/cartman/Github/UteacherAndroid/RefactorDemo/app/src/main/res/drawable-xxhdpi/nav_shabow.9.png malformed.

AAPT err(943142208): Frame pixels must be either solid or transparent (not intermediate alphas).

AAPT err(943142208): Found at pixel #1 along left edge.

这就是我的解决方法:在Android Sdk目录下打开draw9patch工具

cd /Android/sdk/tools

./draw9patch

打开.9 png并再次保存。 希望能帮助到你。

Jiawei Dai answered 2019-11-09T01:14:19Z

23 votes

这是最新的ADT为20.0.3的问题。 您可以将* .9.png重命名为* .png并开始工作。

我认为这仅是ADT的错误,因为对于18.0.0版本的ADT,它不会提示此类错误,并且可以正常工作。

change_is_necessity answered 2019-11-09T01:14:50Z

11 votes

资源编译器将9像素的1像素边框去除(并且大概将从它们获得的信息以更有效的方式存储在.9.png文件之外)。 如果您将这些.9.png文件从.apk中删除,则需要手动添加边框。

Reuben Scratton answered 2019-11-09T01:15:14Z

8 votes

当我从Eclipse迁移项目到Android Studio时,我遇到了同样的问题。

您需要做的是,从图像文件名中删除.9,然后在draw9patch工具(位于/ sdk / tools目录中)中将其打开,然后单击右上角的Show Bad Patches按钮。

然后,您应该看到标记为红色的不良像素和区域,您需要在那里进行一些工作,直到没有红色不良补丁为止。 对我来说,我只在左中边缘标记了一个像素,在中上边缘标记了一个像素,并标记了几乎所有的右边缘和下边缘。 再次单击按钮,发现您没有不良补丁。

将文件另存为.9.png并将其放回项目的res文件夹中。 然后,Android Studio应该可以毫无问题地构建9个补丁的项目。

Moti Bartov answered 2019-11-09T01:15:59Z

5 votes

就我而言,我错误地将黑色边框扩展到了左上角。 确保角落是透明的。

bradley4 answered 2019-11-09T01:16:23Z

4 votes

现在,Android构建工具中有两个PNG压缩器,AAPT和一个Java压缩器。 两者都检查格式不正确的9个补丁图像。

我已经研究了构建工具的源代码。 没有选项可以禁用9个补丁图像上的压缩或忽略格式错误的图像。 至少没有可供用户使用的选项。

因此,以下是替换AAPT的简单脚本:

[https://gist.github.com/ksc91u/37513796b2cec37bb3c5]

当调用压缩9补丁程序映像时,它将仅复制文件,否则,它将使用@ARGV启动真正的AAPT。

ksc91u answered 2019-11-09T01:17:16Z

2 votes

如果使用在线生成器工具制作图像,则必须删除名称中的所有特殊字符才能使其正常工作。

mbpatel answered 2019-11-09T01:17:40Z

1 votes

仅作记录:对我而言,该错误来自右侧站点和底部的黑色边框。 所以我在每一侧(顶部,右侧,底部和左侧)都有黑色边框。 删除多余的右边线和底线就像是一种魅力。

Langusten Gustel answered 2019-11-09T01:18:04Z

1 votes

对我来说,问题似乎在于我自己创建了9补丁。 我认为在左边缘和顶部边缘具有1 px的边界就足够了,但是您需要确保图像在每个边缘具有1 px的边界。

Guido Kersten answered 2019-11-09T01:18:28Z

0 votes

当错误出现时,它也会在android studio中打开图像。 我所做的所有修复工作都是将任何补丁边界扩展为单个绘制像素。 我重新跑了,它奏效了。 不知道为什么,但是我用几个图像重复测试了这一点。

dbconfession answered 2019-11-09T01:18:53Z

0 votes

我发现问题与* .9.png文件有关。 打开并检查所有9-Patch文件,确保所有文件都具有1像素宽的黑色黑色边框,如果没有,只需单击白色位置并添加它,然后保存。

这是解决我的问题的唯一方法。

Akash Bisariya answered 2019-11-09T01:19:24Z

0 votes

您的9补丁程序可能是错误的。

也许您将9个像素的1像素边框剥掉了,但从中获得的信息不可用。 尝试为文本添加底线和右线。 我认为这将有助于解决您的问题。

QArea answered 2019-11-09T01:19:55Z

0 votes

当我们对任何图像进行九点修补时,它会在其边界处创建一条黑线。 该边框应透明或完全牢固。 如果不是,将出现此错误。

因此解决方案是将宽度和高度增加两个像素。 (在Photoshop中,增加画布的大小,而不是图像的大小。)

Dhanraj Gullapalli answered 2019-11-09T01:20:25Z

0 votes

我已通过更改Android Studio中的拉伸范围解决了该问题。

chefish answered 2019-11-09T01:20:49Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值