一般我们使用.9图,是将图片放在drawable目录下.但是如果将.9图放在服务端,加载直接使用就会有问题了. 按照下面的步骤加载,可以实现.9图的正常加载:
1.使用android的aapt工具(路径为~/sdk/build-tools/(版本号)/aapt)编译图片,将.9图编译成包含特殊信息的图片,执行命令:aapt.exe s -i xxx.9.png -o xxx.png 例如:
/Users/liuzhenli/Library/Android/sdk/build-tools/26.0.2/aapt s -i /Users/liuzhenli/Desktop/seekbar_txt_bg.9.png -o /Users/liuzhenli/Desktop/liu.png
然后将这个处理过之后的图片放在指定文件夹下或者服务器就可以正常使用了.
2.在代码中加载图片
Bitmap bmp = BitmapFactory.decodeFile(filepath);
NinePatchDrawable npd = new NinePatchDrawable(res, bmp, bmp.getNinePatchChunk, new Rect(), null);
btn.setBackgroundDrawable(npd);