Android从服务器获取.9图片失效处理

本文介绍了一种解决从服务器获取的.9图片在Android应用中失效的问题。通过特定步骤处理.9图片,并配合代码调整,使聊天消息气泡显示正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间,项目需要做聊天气泡的需求。要求从服务器上获取气泡图,但是从服务器上获取.9图片的话,.9图片会失效。在我苦思冥想中终于发现解决办法。我想可能是.9图片在打包成aok的时候,对图片进行了处理。果不其然,的确是这。但是我们出服务器上获取的.9图片为什么就不行了呢。接下来我将告诉大家一个巧妙的解决办法。

1.对.9图片进行处理 

1)将画好线的点9图放在任意一个Android工程中
2)从Android工程bin目录下拷贝apk
3)将apk后缀名修改为zip等可解压的文件,并对其解压
4)解压后你会发现,对应的res文件夹下有我们之前放的点9图片
5)将处理后的点9图片放到服务器上,这样我们就可以使用啦

**说明:处理后的点9图片你会发现我们这前画好的黑线没有了,这证明看我之前的猜想是正确的


2.代码处理

之前处理的图片你会发现一样不能使用
我们只需要将图片在进行以下代码处理即可

private Drawable getNinePatchDrawable(Bitmap bitmap,Context context) {
   
        byte[] chunk =bitmap.getNinePatchChunk();
        NinePatchDrawable ninePatchDrawable = null;
        if(NinePatch.isNinePatchChunk(chunk))
        {
            ninePatchDrawable = new NinePatchDrawable(context.getResources(), bitmap, chunk,
                    new Rect(), null);
        }
        return ninePatchDrawable;
**说明:即使这样,你会发现点9的右线和低线的文字区域还是不管用,不过这已经不影响我们使用啦。

    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值