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)

你可能感兴趣的:(canvas)