这是Android 9 Patch图片的一个大坑!
在Android中如果要使用一个拉抻图片,必须将一张图片用 draw9patch.bat 这个工具制作为一张Android专用的9Patch图片,然后才可以在eclispe的设计器中使用。
但如果想要在代码中以编程方式载入这种图片的话,就麻烦了,必须经过以下步骤才能正确将图片拉伸显示出来
1、利用Android工具aapt.exe,执行 aapt.exe s -i xxx.9.png -o xx.png 将9Patch图片转变为一张包含特殊信息的图片,这个图片不能使用ps等工具来编辑生成,估计图片里包含有一些android的特殊信息
2、代码按以下方式调用
Bitmap bmp = BitmapFactory.decodeFile(filepath); NinePatchDrawable npd = new NinePatchDrawable(res, bmp, bmp.getNinePatchChunk, new Rect(), null); btn.setBackgroundDrawable(npd);