Помогите с помощью Android ClipDrawable - PullRequest
0 голосов
/ 12 декабря 2010

Я пытался выяснить, как вырезать рисунок в моих ресурсах, чтобы сделать другой рисунок.

У меня есть большой чертеж, содержащий все плитки, которые я собираюсь использовать для создания игры.карта на телефоне.Мне бы хотелось, чтобы я мог использовать ClipDrawable для выбора нужной плитки, а не делать это вручную в фотошопе.

(Это моя первая программа, так что я пока не очень хорош в этом) Вот чтоЯ мог бы сделать это до сих пор, но у меня есть 50 различных типов плиток, поэтому я думаю, что было бы легче вырезать их все из одного изображения.

 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);

      }
      }}
     }

Спасибо!

1 Ответ

0 голосов
/ 04 сентября 2011

Не знаю точно, как обрезать границы между заданными границами, во всяком случае, я думаю, отсечение сделано с clipDrawableObject.setLevel(level);, когда уровень находится в диапазоне между 0 to 10000.setBounds метод (все еще догадываясь) только изменяет размер изображения в пределах заданных границ.Если вам нужна более подробная информация, взгляните на метод ClipDrawable.java draw(Canvas blabla).

Тем не менее, на вашем месте я предпочитаю отдельный файл изображения для каждой плитки.Потому что вы загружаете огромный файл изображения на мобильное устройство, и происходит обработка изображений для операций с клипами.В любом случае, удачи.

...