在画布上绘制九个补丁(Android)

Tom*_*m R 25 java graphics android nine-patch

我正在尝试在Android上的Canvas对象上绘制九个补丁.奇怪的是,虽然我使用draw9patch工具生成了我的九个补丁,但NinePatch的构造函数需要一个额外的字节数组,称为"chunk"来构造九个补丁.

为什么这不简单?什么是"块"?如果你自己这样做了,你是怎么做到的?

任何帮助赞赏.

Mar*_*k B 77

你可以这样轻松地做到这一点:

// Load the image as a NinePatch drawable
NinePatchDrawable npd = (NinePatchDrawable)Resources.getDrawable(R.drawable.my_nine_patch);

// Set its bound where you need
Rect npdBounds = new Rect(...);
npd.setBounds(npbBounds);

// Finally draw on the canvas
npd.draw(canvas);
Run Code Online (Sandbox Code Playgroud)

  • 不需要进行转换,但是在绘制之前需要在Drawable上调用setBounds(). (35认同)
  • 在我上面的代码中,对象'd'实际上是NinePatchDrawable的一个实例,因为你给了getDrawable一个9patch资源的ID.所以你可以做NinePatchDrawable npd =(NinePatchDrawable)d; 这不适用于您的目的吗? (7认同)