NinePatchDrawable构造函数忽略填充?

时间:2011-10-14 18:22:32

标签: android nine-patch

我正在尝试在运行时从位于文件夹资产中的已编译九补丁PNG文件构建 NinePatchDrawable 。问题是构造函数似乎忽略了九个补丁块中的填充。

InputStream inStream = context.getAssets().open(imagePath);
Bitmap bitmap = BitmapFactory.decodeStream(inStream);
byte[] chunk = bitmap.getNinePatchChunk();
boolean isNinePatch = NinePatch.isNinePatchChunk(chunk);
Rect padding = new Rect();
if(isNinePatch)
    drawable = new NinePatchDrawable(context.getResources(), bitmap, chunk, padding, imagePath);

此代码返回 NinePatchDrawable ,所有方面都填充为零。我很肯定PNG文件包含正确的填充边距,因为以下代码返回带有正确填充的 NinePatchDrawable ,使用完全相同的编译九补丁PNG文件:

InputStream inStream = context.getAssets().open(imagePath);
Drawable drawable = Drawable.createFromResourceStream(context, null, inStream, null);

(为什么我不直接使用这种方法?Because it crashes on some handsets。)

如果有人能告诉我如何使用正确的填充在运行时构建NinePatchDrawable,我真的很感激!

0 个答案:

没有答案