2010-07-28 5 views
0

J'ai un widget avec un ImageView dessus. J'ai défini ImageView sur une image bitmap créée à partir d'une ressource PNG de 9 correctifs. L'image est correctement définie mais n'est pas étirée correctement, c'est-à-dire que l'image entière est étirée au lieu de la partie définie dans mon PNG de 9 patchs. Si je viens de définir l'image 9-patch comme une ressource, cela fonctionne. Comment puis-je réparer cela?Bitmap de 9 patchs sur un widget utilisant RemoteViews

// Does not work (9-patch does not display correctly) 
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.someNinePatch); 
remoteViews.setImageViewBitmap(R.id.someImageView, bitmap); 

// Works (9-patch displays correctly) 
remoteViews.setImageViewResource(R.id.someImageView, R.drawable.someNinePatch); 

Répondre

1

Android connaît un PNG est un neuf patch en vertu de l'extension de fichier .9.png sur la ressource. Je ne connais aucun moyen d'utiliser des images de neuf patchs en dehors des ressources, car Android n'aura pas l'extension de fichier et ne saura pas que l'image est un patch neuf.

+0

La ressource a l'extension .9.png, je l'utilise juste comme bitmap à la place. –

+1

@Isaac Walter: mais vous perdez l'extension en la chargeant dans un objet 'Bitmap'. AFAIK, un objet 'Bitmap' n'a aucune idée s'il provient d'un PNG normal, d'un PNG de neuf patchs, d'un JPEG, d'un GIF ou d'autre chose. – CommonsWare

Questions connexes