2010-12-12 23 views
0

J'ai essayé de comprendre comment couper un drawable dans mes ressources pour en créer un autre.Aide à l'aide d'android ClipDrawable

J'ai un grand drawable contenant toutes les tuiles que je vais utiliser pour créer une carte de jeu sur le téléphone. Je voudrais si je pourrais utiliser ClipDrawable pour sélectionner la tuile que je veux, par opposition à le faire manuellement sur photoshop.

(Ceci est mon premier programme donc je ne suis pas encore très bon) Voici ce que j'ai pu faire jusqu'ici mais j'ai 50 types de carreaux différents donc je pense que ce serait plus facile à recadrer tous sur la même image.

protected void onDraw(Canvas canvas) { 


    for(int i = 0; i < Tiles.length; i++){ 

     if(Tiles[i].isVisible()){ 
     /* Make the sprite draw itself to the canvas */ 
     if(Tiles[i].Render == 0){ 
      this.tile4.setBounds(Tiles[i].mySpritePos.x, Tiles[i].mySpritePos.y, 
        Tiles[i].mySpritePos.x + 26, Tiles[i].mySpritePos.y + 26); 

      this.tile4.draw(canvas); 
     } 
     if(Tiles[i].Render == 1){ 
      this.tile1.setBounds(Tiles[i].mySpritePos.x, Tiles[i].mySpritePos.y, 
        Tiles[i].mySpritePos.x + 26, Tiles[i].mySpritePos.y + 26); 

      this.tile1.draw(canvas); 

     } 
     }} 
    } 

Merci!

Répondre

0

Je ne sais pas exactement comment recadrer entre les limites données, de toute façon je suppose que l'écrêtage fait avec clipDrawableObject.setLevel(level); où le niveau est compris entre 0 to 10000. La méthode setBounds (toujours deviner) ne redimensionne l'image qu'avec les limites données. Si vous avez besoin d'informations plus détaillées, jetez un œil à la méthode draw(Canvas blabla).

Toujours si j'étais vous, je préfère un fichier image séparé pour chaque tuile. Parce que, vous chargez un énorme fichier image sur un appareil mobile et il y a un traitement d'image pour les opérations de clip. Bonne chance quand même.