2012-04-02 3 views
66

J'ai le code suivant qui fera pivoter un drawable d'une quantité définie de degrés.BitmapDrawable alternative obsolète

public Drawable rotateDrawable(float angle, Context context) 
    { 
     Bitmap arrowBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.generic2rb); 

     // Create blank bitmap of equal size 
     Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true); 
     canvasBitmap.eraseColor(0x00000000); 

     // Create canvas 
     Canvas canvas = new Canvas(canvasBitmap); 

     // Create rotation matrix 
     Matrix rotateMatrix = new Matrix(); 
     rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2); 

     //Draw bitmap onto canvas using matrix 
     canvas.drawBitmap(arrowBitmap, rotateMatrix, null); 

     return new BitmapDrawable(canvasBitmap); 
    } 

Le nouveau SDK dit que le

BitmapDrawable(canvasBitmap); 

est dépréciée. Des alternatives du tout?

http://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html

+1

Quel est le problème avec «nouvelle BitmapDrawable (context.getResources(), canvasBitmap)? –

Répondre

151

Est-ce que ceci:

return new BitmapDrawable(context.getResources(), canvasBitmap); 
+0

OK merci, cela semble fonctionner. Je m'inquiétais de la déprécation là-bas! Cela semble rendre l'icône plus grande mais je vais m'y pencher davantage! –

+7

@LeeArmstrong Il semble plus grand car il utilise l'objet ressource pour ajuster l'image à la densité de votre écran. Souvent, la dépréciation d'une méthode signifie qu'elle n'est plus la bonne façon de faire les choses, mais elle est souvent mise en œuvre pour conserver la compatibilité ascendante. Cependant, Google ne semble pas toujours être compatible avec les API, donc cela ne me surprendrait pas s'ils cassaient l'ancien constructeur à l'avenir. – onit

+0

Je dois créer un nouveau BitmapDrawable dans la méthode statique de la classe Tools. Je n'ai pas accès au contexte. Comment pourrais-je utiliser cette méthode dans ce cas? – Marek

Questions connexes