94 votes

BitmapDrawable alternative déconseillée

J'ai le code suivant qui fera pivoter un dessinable par une quantité définie de degrés.

     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 obsolète. Des alternatives du tout?

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

210voto

onit Points 2820

Faites ceci à la place:

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

De plus, Java est obsolète tout le temps et vous pouvez toujours l'utiliser. Je ne sais pas si Google utilise la même philosophie, mais si ce n'est pas cassé, vous n'avez pas besoin de le réparer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X