To draw NinePatch on canvas

code

protected NinePatchDrawable shadowLeft;
......
Bitmap image = BitmapFactory.decodeResource(context.getResources(),R.drawable.shadow_left); byte[] chunk= image.getNinePatchChunk(); shadowLeft=new NinePatchDrawable(context.getResources(), image, chunk, new Rect(), null);
shadowLeft.setBounds(sx, sy, ex, ey);
shadowLeft.draw(canvas);

 

Make sure that your ninepatch image has strech area in top and left edge,Or you'll get the following error:

Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 9184 (om.ai.imagemask) 

JNI WARNING: received null array           
in Landroid/graphics/NinePatch;.validateNinePatchChunk:(I[B)V (GetArrayLength)

原文地址:https://www.cnblogs.com/qiengo/p/2693546.html