Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在画布上绘制九个补丁(Android)_Java_Android_Graphics_Nine Patch - Fatal编程技术网

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

Java 在画布上绘制九个补丁(Android),java,android,graphics,nine-patch,Java,Android,Graphics,Nine Patch,我正试图在Android上的画布对象上绘制一个9补丁。奇怪的是,尽管我使用draw9patch工具生成了我的九块补丁,但NinePatch的构造函数需要一个名为“chunk”的额外字节数组来构造九块补丁 这为什么不简单呢?什么是“块”?如果你自己做过,你是怎么做的 感谢您的帮助。您可以通过以下方式轻松完成: // Load the image as a NinePatch drawable NinePatchDrawable npd = (NinePatchDrawable)Resources.

我正试图在Android上的画布对象上绘制一个9补丁。奇怪的是,尽管我使用draw9patch工具生成了我的九块补丁,但NinePatch的构造函数需要一个名为“chunk”的额外字节数组来构造九块补丁

这为什么不简单呢?什么是“块”?如果你自己做过,你是怎么做的


感谢您的帮助。

您可以通过以下方式轻松完成:

// 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);

但是我需要一个适合特定尺寸的图像。否则我不会使用九补丁。在我上面输入的代码中,对象“d”实际上是NinePatchDrawable的实例,因为您为getDrawable提供了9patch资源的ID。所以你可以做NinePatchDrawable npd=(NinePatchDrawable)d;这对您的目的不起作用吗?不需要强制转换,但您需要在绘制它之前在绘图表上调用setBounds()。太棒了,我在文档中找不到这个。非常感谢你。