您的位置:首页 > 移动开发 > Android开发

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

2015-10-23 19:03 501 查看
前段时间,项目需要做聊天气泡的需求。要求从服务器上获取气泡图,但是从服务器上获取.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的右线和低线的文字区域还是不管用,不过这已经不影响我们使用啦。

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: