NinePatchDrawable não recebe preenchimento de bloco

Preciso de ajuda com o NinePatchDrawable:

Meu aplicativo pode baixar temas da rede. Quase todas as coisas funcionam bem, exceto os PNGs 9-Patch.

final Bitmap bubble = getFromTheme("bubble");
if (bubble == null) return null;

final byte[] chunk = bubble.getNinePatchChunk();
if (!NinePatch.isNinePatchChunk(chunk)) return null;

NinePatchDrawable d = new NinePatchDrawable(getResources(), bubble, chunk, new Rect(), null);
v.setBackgroundDrawable(d);

d = null;
System.gc();

getFromTheme () carrega o Bitmap do cartão SD. Os 9-Patch PNGs já estão compilados, o que significa que eles incluem o pedaço necessário.

A forma como eu converto o Bitmap em um objeto NinePatchDrawable parece estar funcionando, porque a imagem é extensível, assim como eu a desenhei.

A única coisa que não funciona é o preenchimento. Eu já tentei definir o preenchimento para a exibição assim:

final Rect rect = new Rect();   // or just use the new Rect() set
d.getPadding(rect);             // in the constructor
v.setPadding(rect.left, rect.top, rect.right, rect.bottom);

d.getPadding (rect) deve preencher a variável rect com o preenchimento do pedaço, não deveria? Mas isso não acontece.

Resultado: O TextView (v) não mostra o texto na área de conteúdo da imagem do 9-Patch. Os preenchimentos são definidos como 0 em cada coordenada.

Obrigado pela leitura.

questionAnswers(4)

yourAnswerToTheQuestion