Android从服务器获取.9图片失效处理
2015-10-23 19:03
519 查看
前段时间,项目需要做聊天气泡的需求。要求从服务器上获取气泡图,但是从服务器上获取.9图片的话,.9图片会失效。在我苦思冥想中终于发现解决办法。我想可能是.9图片在打包成aok的时候,对图片进行了处理。果不其然,的确是这。但是我们出服务器上获取的.9图片为什么就不行了呢。接下来我将告诉大家一个巧妙的解决办法。
2)从Android工程bin目录下拷贝apk
3)将apk后缀名修改为zip等可解压的文件,并对其解压
4)解压后你会发现,对应的res文件夹下有我们之前放的点9图片
5)将处理后的点9图片放到服务器上,这样我们就可以使用啦
**说明:处理后的点9图片你会发现我们这前画好的黑线没有了,这证明看我之前的猜想是正确的
我们只需要将图片在进行以下代码处理即可
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.对.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的右线和低线的文字区域还是不管用,不过这已经不影响我们使用啦。
}
相关文章推荐
- Scrollview嵌套Listview出现的问题
- EventBus-再也不用什么Handler了
- android访问数据库时报runtiameException,和空指针异常
- Android沉浸式状态栏、导航栏
- ViewPager图片轮播
- Android Notification详解——响应notification事件
- Android Studio 混淆出现can't find referenced method 的解决方法
- android 版本在线更新
- Android内存泄漏检测-LeakCanary
- 学习笔记_Android之常见四种点击事件的实现方法
- Android控件:自定义View和ViewGroup相关
- Ant自动编译打包&发布 android项目
- Android控件默认风格解析之SeekBar
- Android 动态加载 APK
- android studio 更改背景和设置字体大小
- android 沉浸式状态栏(像ios那样的状态栏与应用统一颜色样式)
- android Matrix图片随意的放大缩小,拖动
- 命令行从Android手机中导出已安装APK的方法调研
- android中handler用法总结
- android中通知系统扫描系统媒体文件的几种方法